Zraniteľnosť v zlib, ktorá sa vyskytuje pri komprimácii špeciálne navrhnutých údajov

V knižnici zlib bola identifikovaná chyba zabezpečenia (CVE-2018-25032), ktorá vedie k pretečeniu vyrovnávacej pamäte pri pokuse o komprimáciu špeciálne pripravenej sekvencie znakov v prichádzajúcich údajoch. V súčasnej podobe výskumníci preukázali schopnosť spôsobiť abnormálne ukončenie procesu. Či by problém mohol mať vážnejšie následky, sa zatiaľ neskúmalo.

Chyba zabezpečenia sa objavuje od verzie zlib 1.2.2.2 a ovplyvňuje aj aktuálne vydanie zlib 1.2.11. Je pozoruhodné, že oprava na opravu zraniteľnosti bola navrhnutá už v roku 2018, ale vývojári jej nevenovali pozornosť a nevydali opravné vydanie (knižnica zlib bola naposledy aktualizovaná v roku 2017). Oprava tiež ešte nie je zahrnutá v balíkoch ponúkaných distribúciami. Publikovanie opráv podľa distribúcií môžete sledovať na týchto stránkach: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD. Knižnica zlib-ng nie je týmto problémom ovplyvnená.

Zraniteľnosť sa vyskytuje, ak vstupný tok obsahuje veľký počet zhôd, ktoré sa majú zbaliť, na ktoré sa zbalenie aplikuje na základe pevných Huffmanových kódov. Za určitých okolností môže obsah medziľahlej vyrovnávacej pamäte, do ktorej je umiestnený komprimovaný výsledok, prekrývať pamäť, v ktorej je uložená tabuľka frekvencie symbolov. V dôsledku toho sa generujú nesprávne komprimované údaje a zlyhávajú kvôli zápisu mimo hranice vyrovnávacej pamäte.

Zraniteľnosť možno zneužiť iba pomocou stratégie kompresie založenej na pevných Huffmanových kódoch. Podobná stratégia sa zvolí, keď je v kóde explicitne povolená možnosť Z_FIXED (príklad sekvencie, ktorá vedie k zlyhaniu pri použití možnosti Z_FIXED). Podľa kódu možno stratégiu Z_FIXED zvoliť aj automaticky, ak optimálne a statické stromy vypočítané pre dáta majú rovnakú veľkosť.

Zatiaľ nie je jasné, či je možné vybrať podmienky na zneužitie zraniteľnosti pomocou predvolenej kompresnej stratégie Z_DEFAULT_STRATEGY. Ak nie, potom bude zraniteľnosť obmedzená na určité špecifické systémy, ktoré explicitne používajú možnosť Z_FIXED. Ak áno, poškodenie spôsobené zraniteľnosťou by mohlo byť veľmi významné, pretože knižnica zlib je de facto štandard a používa sa v mnohých populárnych projektoch vrátane linuxového jadra, OpenSSH, OpenSSL, apache httpd, libpng, FFmpeg, rsync, dpkg , rpm, Git , PostgreSQL, MySQL atď.

Zdroj: opennet.ru

Pridať komentár