Zlib ievainojamība, kas rodas, saspiežot īpaši izstrādātus datus

Zlib bibliotēkā ir konstatēta ievainojamība (CVE-2018-25032), kas izraisa bufera pārpildīšanu, mēģinot saspiest ienākošajos datos īpaši sagatavotu rakstzīmju secību. Pašreizējā formā pētnieki ir pierādījuši spēju izraisīt procesa nenormālu izbeigšanos. Vai problēmai varētu būt nopietnākas sekas, vēl nav pētīts.

Ievainojamība parādās, sākot no versijas zlib 1.2.2.2, un tā ietekmē arī pašreizējo zlib 1.2.11 versiju. Zīmīgi, ka ielāps ievainojamības labošanai tika piedāvāts jau 2018. gadā, taču izstrādātāji tam nepievērsa uzmanību un neizlaida koriģējošu laidienu (zlib bibliotēka pēdējo reizi tika atjaunināta 2017. gadā). Labojums vēl nav iekļauts arī izplatīšanas piedāvātajās pakotnēs. Varat izsekot labojumu publicēšanai pēc izplatīšanas šajās lapās: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD. Problēma neietekmē zlib-ng bibliotēku.

Ievainojamība rodas, ja ievades straumē ir liels skaits iesaiņojamo atbilstību, kurām tiek lietota pakotne, pamatojoties uz fiksētajiem Hafmena kodiem. Noteiktos apstākļos starpposma bufera saturs, kurā tiek ievietots saspiestais rezultāts, var pārklāties ar atmiņu, kurā tiek saglabāta simbolu frekvences tabula. Rezultātā tiek ģenerēti nepareizi saspiesti dati un avārijas, jo tiek rakstīts ārpus bufera robežas.

Ievainojamību var izmantot, tikai izmantojot saspiešanas stratēģiju, kuras pamatā ir fiksēti Hafmena kodi. Līdzīga stratēģija tiek izvēlēta, ja kodā ir skaidri iespējota opcija Z_FIXED (secības piemērs, kas izraisa avāriju, izmantojot opciju Z_FIXED). Spriežot pēc koda, Z_FIXED stratēģiju var izvēlēties arī automātiski, ja datiem aprēķinātie optimālie un statiskie koki ir vienādi.

Pagaidām nav skaidrs, vai ievainojamības izmantošanas nosacījumus var atlasīt, izmantojot noklusējuma Z_DEFAULT_STRATEGY saspiešanas stratēģiju. Ja nē, tad ievainojamība tiks ierobežota ar noteiktām īpašām sistēmām, kas skaidri izmanto opciju Z_FIXED. Ja tā, tad ievainojamības radītais kaitējums varētu būt ļoti nozīmīgs, jo zlib bibliotēka ir de facto standarts un tiek izmantota daudzos populāros projektos, tostarp Linux kodolā, OpenSSH, OpenSSL, apache httpd, libpng, FFmpeg, rsync, dpkg. , rpm, Git , PostgreSQL, MySQL utt.

Avots: opennet.ru

Pievieno komentāru