GNU IFUNC — adevăratul vinovat din spatele CVE-2024-3094
Un cercetător a descoperit că mecanismul GNU IFUNC, nu doar XZ, este rădăcina vulnerabilității CVE-2024-3094.

Vă amintiți scandalul CVE-2024-3094, când toată lumea a dat peste cap bibliotecile XZ? Se pare că adevăratul răufăcător nu este XZ, ci vechiul mecanism GNU IFUNC, care este ca o ușă fără lacăt în lumea binarilor ELF.
Cercetătorul Robert French a pus degetul pe IFUNC și a descoperit că această funcție, menită să selecteze cea mai bună implementare pentru un procesor, este perfectă pentru a ascunde backdoor-uri. E ca și cum mașina ta ar avea o trapă standard pentru mecanic, iar cineva o folosește pentru a o fura.
Ideea este că IFUNC permite alegerea dinamică a versiunii unei funcții — iar un atacator poate injecta o versiune malitioasă care ocolește toate verificările. În cazul XZ, backdoor-ul a folosit IFUNC pentru a intercepta apelurile OpenSSH, rămânând nedetectat de analizoarele standard.
Dezvoltatorii ar trebui să se gândească: câte alte mecanisme „comode” din toolchain-urile noastre sunt de fapt bombe cu ceas? IFUNC este un instrument puternic, dar fără control devine un coșmar de securitate. După cum se spune, cu mare putere vine și mare responsabilitate (și multe cârje).
Comentariul studioului METABYTE: Noi am spus întotdeauna că securitatea nu este o funcție, ci un proces. Dacă codul tău folosește IFUNC sau mecanisme similare „magice”, nu ezita să faci un audit — altfel într-o zi s-ar putea să descoperi că binarul tău „optimizat” lucrează deja pentru altcineva.
URMATORUL PAS
Ti-a placut abordarea?
Aplicam aceleasi principii in proiectele clientilor: AI, automatizari, produse care nu se sting dupa lansare.