Un Unix domain socket è un endpoint locale di comunicazione tra processi (IPC) usato da programmi sulla stessa macchina per inviarsi dati a vicenda. A differenza di un socket TCP, non utilizza lo stack di rete né un indirizzo IP remoto; la comunicazione resta sull'host ed è in genere controllata dai permessi del filesystem.
Dal punto di vista della sicurezza, i Unix domain socket sono importanti perché spesso collegano applicazioni prive di privilegi a servizi helper privilegiati. Questo li rende un comune confine di fiducia nel software macOS e Linux. Se un servizio root accetta messaggi controllati da un attaccante attraverso un socket locale, un utente con pochi privilegi o un processo locale malevolo potrebbe essere in grado di attivare azioni sensibili, esfiltrare dati o arrivare all'esecuzione di comandi. I difensori dovrebbero trattare gli endpoint IPC locali come qualsiasi altra superficie di attacco: limitare l'accesso, convalidare il contenuto dei messaggi ed evitare di passare l'input del socket a comandi shell o a parser non sicuri.


