Chyba zabezpečení ve zlib, ke které dochází při komprimaci speciálně navržených dat

V knihovně zlib byla identifikována chyba zabezpečení (CVE-2018-25032), která vede k přetečení vyrovnávací paměti při pokusu o komprimaci speciálně připravené sekvence znaků v příchozích datech. V jeho současné podobě vědci prokázali schopnost způsobit abnormální ukončení procesu. Zda by problém mohl mít vážnější důsledky, zatím nebylo zkoumáno.

Chyba zabezpečení se objevuje od verze zlib 1.2.2.2 a ovlivňuje také aktuální vydání zlib 1.2.11. Je pozoruhodné, že oprava pro opravu zranitelnosti byla navržena již v roce 2018, ale vývojáři tomu nevěnovali pozornost a nevydali opravné vydání (knihovna zlib byla naposledy aktualizována v roce 2017). Oprava také zatím není zahrnuta v balíčcích nabízených distribucemi. Publikování oprav podle distribucí můžete sledovat na těchto stránkách: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD. Knihovna zlib-ng není tímto problémem ovlivněna.

K této chybě zabezpečení dochází, pokud vstupní tok obsahuje velký počet shod, které mají být zabaleny, na které se pak použije sbalení na základě pevných Huffmanových kódů. Za určitých okolností může obsah mezilehlé vyrovnávací paměti, do které je umístěn komprimovaný výsledek, překrývat paměť, ve které je uložena tabulka frekvence symbolů. V důsledku toho jsou generována nesprávná komprimovaná data a dochází k jejich zhroucení kvůli zápisu mimo hranice vyrovnávací paměti.

Tuto chybu zabezpečení lze zneužít pouze pomocí strategie komprese založené na pevných Huffmanových kódech. Podobná strategie je zvolena, když je v kódu explicitně povolena možnost Z_FIXED (příklad sekvence, která vede ke zhroucení při použití možnosti Z_FIXED). Soudě podle kódu lze strategii Z_FIXED zvolit také automaticky, pokud optimální a statické stromy vypočítané pro data mají stejnou velikost.

Zatím není jasné, zda lze podmínky pro zneužití zranitelnosti zvolit pomocí výchozí kompresní strategie Z_DEFAULT_STRATEGY. Pokud ne, pak bude zranitelnost omezena na určité konkrétní systémy, které explicitně používají možnost Z_FIXED. Pokud ano, pak by poškození způsobené zranitelností mohlo být velmi významné, protože knihovna zlib je de facto standard a používá se v mnoha populárních projektech, včetně linuxového jádra, OpenSSH, OpenSSL, apache httpd, libpng, FFmpeg, rsync, dpkg , rpm, Git, PostgreSQL, MySQL atd.

Zdroj: opennet.ru

Přidat komentář