Ievainojamība ld.so OpenBSD

Dinamiskais iekrāvējs ld.tātad, kas iekļauts OpenBSD, noteiktos apstākļos var SUID/SGID- lietojumprogrammas atstāj vides mainīgo LD_LIBRARY_PATH un tādējādi ļauj ielādēt trešās puses kodu procesa kontekstā, kas darbojas ar paaugstinātām privilēģijām. Laidieniem ir pieejami ielāpi, kas novērš ievainojamību 6.5 и 6.6. Binārie ielāpi (syspatch) platformām amd64, i386 un arm64 jau tiek ražotas, un tām vajadzētu būt pieejamai lejupielādei līdz šo ziņu publicēšanas brīdim.

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 Qualy's, kā arī vairāki iepriekš atklāti problēmas. Drošības pētnieki, kuri identificēja ievainojamību, atzīmēja, cik ātri problēma tika atrisināta: tika sagatavots ielāps un atjauninājumi tika izlaisti trīs stundu laikā pēc OpenBSD projekta paziņojuma saņemšanas.

Papildinājums: problēmai ir piešķirts numurs CVE-2019-19726. Izgatavots oss-security adresātu sarakstā oficiālais paziņojums, ieskaitot prototipa izmantošanu, kas darbojas uz OpenBSD 6.6, 6.5, 6.2 un 6.1 arhitektūrām
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

Pievieno komentāru