Dünaamiline laadur
Probleemi olemus: töötamise ajal eraldab ld.so esmalt keskkonnast muutuja LD_LIBRARY_PATH väärtuse ja funktsiooni _dl_split_path() kasutades muudab selle stringide massiiviks – teedeks kataloogidesse. Kui hiljem selgub, et käimasoleva protsessi käivitab SUID/SGID rakendus, siis loodud massiiv ja tegelikult ka muutuja LD_LIBRARY_PATH kustutatakse. Samal ajal, kui _dl_split_path() mälu saab otsa (mis on raske keskkonnamuutujate suuruse selgesõnalise 256 kB piirangu tõttu, kuid teoreetiliselt võimalik), saab muutuja _dl_libpath väärtuse NULL ja järgnevad kontrollid selle muutuja väärtus sunnib _dl_unsetenv("LD_LIBRARY_PATH") väljakutse vahele jätma.
Ekspertide leitud haavatavus
Täiendus: probleemile on määratud number
amd64 ja i386 (kasutamist saab kohandada ka teistele arhitektuuridele).
Probleemi saab kasutada vaikeinstallis ja see võimaldab privilegeerimata kohalikul kasutajal utiliitide chpass või passwd suid käivitamisel teegi asendamise kaudu koodi käivitada administraatorina. Tööks vajalike vähese mäluga tingimuste loomiseks seadke setrlimiti kaudu limiit RLIMIT_DATA.
Allikas: opennet.ru