zlib pažeidžiamumas, atsirandantis glaudinant specialiai sukurtus duomenis

Zlib bibliotekoje buvo nustatytas pažeidžiamumas (CVE-2018-25032), dėl kurio atsiranda buferio perpildymas, kai bandoma suspausti specialiai paruoštą gaunamų duomenų simbolių seką. Dabartinėje formoje mokslininkai įrodė gebėjimą priversti procesą nutraukti neįprastai. Ar problema gali turėti rimtesnių pasekmių, kol kas netirta.

Pažeidžiamumas atsiranda nuo zlib 1.2.2.2 versijos ir taip pat turi įtakos dabartinei zlib 1.2.11 versijai. Pastebėtina, kad pataisa pažeidžiamumui ištaisyti buvo pasiūlyta dar 2018 m., tačiau kūrėjai į tai nekreipė dėmesio ir korekcinio leidimo neišleido (paskutinį kartą zlib biblioteka buvo atnaujinta 2017 m.). Pataisa taip pat dar neįtraukta į platintojų siūlomus paketus. Galite stebėti pataisymų paskelbimą pagal platinimą šiuose puslapiuose: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD. Problema neturi įtakos zlib-ng bibliotekai.

Pažeidžiamumas atsiranda, jei įvesties sraute yra daug supakuotų atitikčių, kurioms taikomas pakavimas pagal fiksuotus Huffman kodus. Tam tikromis aplinkybėmis tarpinio buferio, į kurį dedamas suspaustas rezultatas, turinys gali persidengti su atmintimi, kurioje saugoma simbolių dažnio lentelė. Dėl to generuojami neteisingi suspausti duomenys ir sugenda dėl rašymo už buferio ribos.

Pažeidžiamumą galima išnaudoti tik naudojant suspaudimo strategiją, pagrįstą fiksuotais Huffman kodais. Panaši strategija pasirenkama, kai kode yra aiškiai įjungta parinktis Z_FIXED (sekos, kuri sukelia strigtį naudojant Z_FIXED parinktį, pavyzdys). Sprendžiant iš kodo, Z_FIXED strategiją galima pasirinkti ir automatiškai, jei duomenims apskaičiuoti optimalūs ir statiški medžiai yra vienodo dydžio.

Kol kas neaišku, ar pažeidžiamumo išnaudojimo sąlygas galima pasirinkti naudojant numatytąją Z_DEFAULT_STRATEGY glaudinimo strategiją. Jei ne, pažeidžiamumas bus apribotas tam tikromis konkrečiomis sistemomis, kurios aiškiai naudoja Z_FIXED parinktį. Jei taip, pažeidžiamumo padaryta žala gali būti labai didelė, nes zlib biblioteka yra de facto standartas ir naudojama daugelyje populiarių projektų, įskaitant Linux branduolį, OpenSSH, OpenSSL, apache httpd, libpng, FFmpeg, rsync, dpkg. , rpm, Git , PostgreSQL, MySQL ir kt.

Šaltinis: opennet.ru

Добавить комментарий