Carregador dinàmic
L'essència del problema: durant el funcionament, ld.so primer extreu el valor de la variable LD_LIBRARY_PATH de l'entorn i, utilitzant la funció _dl_split_path(), el converteix en una matriu de cadenes: camins als directoris. Si més tard resulta que el procés actual l'inicia una aplicació SUID/SGID, aleshores s'esborra la matriu creada i, de fet, la variable LD_LIBRARY_PATH. Al mateix temps, si _dl_split_path() es queda sense memòria (cosa difícil a causa del límit explícit de 256 kB sobre la mida de les variables d'entorn, però teòricament possible), aleshores la variable _dl_libpath rebrà el valor NULL i les comprovacions posteriors de el valor d'aquesta variable obligarà a saltar la crida a _dl_unsetenv("LD_LIBRARY_PATH").
Vulnerabilitat detectada pels experts
Addició: al problema se li ha assignat un número
amd64 i i386 (l'explotació es pot adaptar per a altres arquitectures).
El problema es pot explotar a la instal·lació predeterminada i permet que un usuari local sense privilegis executi codi com a root mitjançant la substitució de la biblioteca quan s'executa les utilitats chpass o passwd suid. Per crear les condicions de poca memòria necessàries per al funcionament, establiu el límit RLIMIT_DATA mitjançant setrlimit.
Font: opennet.ru