sendmsg() è una chiamata di sistema socket di Linux e Unix usata per inviare dati, messaggi di controllo o più buffer a un socket per l'elaborazione. A differenza delle chiamate write() più semplici, può trasportare metadati strutturati tramite dati ancillari ed è comune nel codice di rete, nell'IPC e in interfacce rivolte al kernel come AF_ALG.
Nel lavoro di sicurezza, sendmsg() è importante perché spesso rappresenta il punto di ingresso di input controllato dall'attaccante verso sottosistemi di rete o del kernel con privilegi. Bug nel modo in cui il kernel gestisce richieste sendmsg() concorrenti o malformate possono portare a corruzione dello stato, condizioni di race, problemi di sicurezza della memoria o persino escalation di privilegi. I difensori cercano chiamate ripetute sospette, famiglie di socket insolite e fallimenti causati dall'accesso concorrente. Quando una vulnerabilità interessa percorsi guidati da sendmsg(), correggere il kernel, limitare le funzionalità socket non necessarie e ridurre l'esposizione di interfacce legacy sono difese pratiche.


