Hanno Böck, autorul proiectului , asupra vulnerabilității interfețelor de compilare interactivă, care permit procesarea codului extern în limbajul C. În cazul specificării unui path arbitrar în directiva „#include”, eroarea de compilare include conținutul unui fișier care nu a putut fi compilat.
De exemplu, introducând într-unul dintre serviciile online codul „#include <\/etc\/shadow>”, a fost posibil să se obțină hash-ul parolei utilizatorului root din fișierul \/etc\/shadow, ceea ce indică de asemenea că serviciul web rulează cu drepturi de root și execută comenzi de compilare sub utilizatorul root (nu este exclus ca în timpul compilării să fi fost folosit un container izolat, dar rularea cu drepturi de root în container rămâne o problemă). Serviciul problematic, în care s-a reușit reproducerea problemei, nu a fost deocamdată făcut public. Încercările de a deschide fișiere în sistemul de fișiere pseudo \/proc nu au avut succes, deoarece GCC le percepe ca fișiere goale, dar deschiderea fișierelor din \/sys funcționează.
Sursa: opennet.ro
