Dobësi në zlib që ndodh kur kompresohen të dhënat e projektuara posaçërisht

Një cenueshmëri (CVE-2018-25032) është identifikuar në bibliotekën zlib, që çon në një tejmbushje buferi kur përpiqeni të kompresoni një sekuencë karakteresh të përgatitur posaçërisht në të dhënat hyrëse. Në formën e tij aktuale, studiuesit kanë demonstruar aftësinë për të shkaktuar përfundimin e parregullt të një procesi. Nuk është studiuar ende nëse problemi mund të ketë pasoja më serioze.

Dobësia shfaqet duke filluar nga versioni zlib 1.2.2.2 dhe gjithashtu ndikon në lëshimin aktual të zlib 1.2.11. Vlen të përmendet se një rregullim për të korrigjuar dobësinë u propozua në vitin 2018, por zhvilluesit nuk i kushtuan vëmendje dhe nuk lëshuan një version korrigjues (biblioteka zlib u përditësua për herë të fundit në 2017). Rregullimi gjithashtu nuk është përfshirë ende në paketat e ofruara nga shpërndarjet. Ju mund të gjurmoni publikimin e rregullimeve sipas shpërndarjeve në këto faqe: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD. Biblioteka zlib-ng nuk preket nga problemi.

Dobësia ndodh nëse rryma hyrëse përmban një numër të madh ndeshjesh për t'u paketuar, për të cilat paketimi zbatohet bazuar në kodet fikse Huffman. Në rrethana të caktuara, përmbajtja e tamponit të ndërmjetëm në të cilin vendoset rezultati i ngjeshur mund të mbivendoset me memorien në të cilën ruhet tabela e frekuencës së simboleve. Si rezultat, gjenerohen të dhëna të pasakta të kompresuara dhe prishen për shkak të shkrimit jashtë kufirit të tamponit.

Dobësia mund të shfrytëzohet vetëm duke përdorur një strategji kompresimi të bazuar në kodet fikse Huffman. Një strategji e ngjashme zgjidhet kur opsioni Z_FIXED është aktivizuar në mënyrë eksplicite në kod (një shembull i një sekuence që çon në një përplasje kur përdoret opsioni Z_FIXED). Duke gjykuar nga kodi, strategjia Z_FIXED gjithashtu mund të zgjidhet automatikisht nëse pemët optimale dhe statike të llogaritura për të dhënat kanë të njëjtën madhësi.

Nuk është ende e qartë nëse kushtet për shfrytëzimin e cenueshmërisë mund të zgjidhen duke përdorur strategjinë e parazgjedhur të kompresimit Z_DEFAULT_STRATEGY. Nëse jo, atëherë cenueshmëria do të kufizohet në disa sisteme specifike që përdorin në mënyrë eksplicite opsionin Z_FIXED. Nëse po, atëherë dëmi nga cenueshmëria mund të jetë shumë i rëndësishëm, pasi biblioteka zlib është një standard de facto dhe përdoret në shumë projekte të njohura, duke përfshirë kernelin Linux, OpenSSH, OpenSSL, apache httpd, libpng, FFmpeg, rsync, dpkg , rpm, Git, PostgreSQL, MySQL, etj.

Burimi: opennet.ru

Shto një koment