Dinamiskais iekrāvējs
Problēmas būtība: darbības laikā ld.so vispirms izvelk no vides mainīgā LD_LIBRARY_PATH vērtību un, izmantojot funkciju _dl_split_path(), pārvērš to virkņu masīvā – ceļos uz direktorijiem. Ja vēlāk izrādās, ka pašreizējo procesu sāk SUID/SGID lietojumprogramma, tad izveidotais masīvs un faktiski arī mainīgais LD_LIBRARY_PATH tiek notīrīts. Tajā pašā laikā, ja _dl_split_path() pietrūkst atmiņas (kas ir sarežģīti, jo vides mainīgajiem ir noteikts 256 kB ierobežojums, taču tas ir teorētiski iespējams), mainīgais _dl_libpath saņems vērtību NULL un pēc tam tiks pārbaudīta. Šī mainīgā lieluma vērtība izraisīs izsaukumu uz _dl_unsetenv("LD_LIBRARY_PATH").
Eksperti atklājuši ievainojamību
Papildinājums: problēmai ir piešķirts numurs
amd64 un i386 (izmantošanu var pielāgot citām arhitektūrām).
Problēma ir izmantojama noklusējuma instalācijā, un tā ļauj nepiederošam vietējam lietotājam izpildīt kodu kā root, izmantojot bibliotēkas aizstāšanu, palaižot utilītas chpass vai passwd suid. Lai izveidotu darbībai nepieciešamos nosacījumus ar zemu atmiņu, iestatiet RLIMIT_DATA ierobežojumu, izmantojot setrlimit.
Avots: opennet.ru