Attacco ai sistemi di compilazione online attraverso la manipolazione dei file header

Hanno Böck, autore del progetto fuzzing-project.org, ha attirato l'attenzione sulla vulnerabilità delle interfacce di compilazione interattive che consentono l'elaborazione di codice esterno nel linguaggio C. Quando si specifica un percorso arbitrario nella direttiva "#include", un errore di compilazione include il contenuto di un file che non è stato possibile compilare.

Ad esempio, sostituendo “#include” nel codice in uno dei servizi online "L'output è stato in grado di ottenere un hash della password dell'utente root dal file /etc/shadow, che indica anche che il servizio web è in esecuzione con diritti root ed esegue comandi di compilazione con l'utente root (è possibile che un contenitore isolato è stato utilizzato durante la compilazione, ma anche l'avvio con diritti di root nel contenitore è un problema). Il servizio problematico in cui è stato possibile riprodurre il problema non è ancora stato pubblicizzato. I tentativi di aprire file nello pseudo FS /proc non hanno avuto successo perché GCC li tratta come file vuoti, ma l'apertura di file da /sys funziona.

Fonte: opennet.ru

Aggiungi un commento