Dinamični nakladalnik
Bistvo problema: med delovanjem ld.so najprej iz okolja izvleče vrednost spremenljivke LD_LIBRARY_PATH in jo s funkcijo _dl_split_path() spremeni v niz nizov - poti do imenikov. Če se pozneje izkaže, da trenutni proces zažene aplikacija SUID/SGID, se ustvarjena matrika in pravzaprav spremenljivka LD_LIBRARY_PATH počistita. Hkrati, če _dl_split_path() zmanjka pomnilnika (kar je težko zaradi eksplicitne omejitve 256 kB na velikost spremenljivk okolja, a teoretično mogoče), bo spremenljivka _dl_libpath prejela vrednost NULL in naknadna preverjanja vrednost te spremenljivke bo prisilno preskočila klic _dl_unsetenv("LD_LIBRARY_PATH").
Ranljivost, ki so jo odkrili strokovnjaki
Dodatek: Težavi je bila dodeljena številka
amd64 in i386 (izkoriščanje je mogoče prilagoditi za druge arhitekture).
Težavo je mogoče izkoristiti v privzeti namestitvi in omogoča neprivilegiranemu lokalnemu uporabniku, da izvede kodo kot root prek zamenjave knjižnice, ko izvaja pripomočke chpass ali passwd suid. Če želite ustvariti pogoje za malo pomnilnika, potrebne za delovanje, nastavite omejitev RLIMIT_DATA prek setrlimit.
Vir: opennet.ru