zlib:n haavoittuvuus, joka ilmenee pakatessa erityisesti suunniteltuja tietoja

zlib-kirjastossa on havaittu haavoittuvuus (CVE-2018-25032), joka johtaa puskurin ylivuotoon yritettäessä pakata saapuvan tiedon erityisesti valmistettu merkkijono. Nykyisessä muodossaan tutkijat ovat osoittaneet kyvyn saada prosessi päättymään epänormaalisti. Sitä, voisiko ongelmalla olla vakavampia seurauksia, ei ole vielä tutkittu.

Haavoittuvuus ilmenee versiosta zlib 1.2.2.2 alkaen ja se vaikuttaa myös zlib 1.2.11:n nykyiseen julkaisuun. On huomionarvoista, että korjaustiedostoa haavoittuvuuden korjaamiseksi ehdotettiin jo vuonna 2018, mutta kehittäjät eivät kiinnittäneet siihen huomiota eivätkä julkaisseet korjaavaa julkaisua (zlib-kirjasto päivitettiin viimeksi vuonna 2017). Korjaus ei myöskään vielä sisälly jakeluiden tarjoamiin paketteihin. Voit seurata korjausten julkaisemista jakeluittain näillä sivuilla: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD. Ongelma ei vaikuta zlib-ng-kirjastoon.

Haavoittuvuus ilmenee, jos syöttövirta sisältää suuren määrän pakattavia osumia, joihin sovelletaan kiinteiden Huffman-koodien pakkaamista. Tietyissä olosuhteissa sen välipuskurin sisältö, johon pakattu tulos sijoitetaan, voi mennä päällekkäin muistin kanssa, johon symbolitaajuustaulukko on tallennettu. Tämän seurauksena syntyy virheellisiä pakattuja tietoja, jotka kaatuvat puskurin rajan ulkopuolelle kirjoitettaessa.

Haavoittuvuutta voidaan hyödyntää vain käyttämällä kiinteisiin Huffman-koodeihin perustuvaa pakkausstrategiaa. Samanlainen strategia valitaan, kun Z_FIXED-vaihtoehto on erikseen otettu käyttöön koodissa (esimerkki sarjasta, joka johtaa kaatumiseen Z_FIXED-vaihtoehtoa käytettäessä). Koodista päätellen Z_FIXED-strategia voidaan valita myös automaattisesti, jos tiedoille lasketut optimaaliset ja staattiset puut ovat samankokoisia.

Vielä ei ole selvää, voidaanko haavoittuvuuden hyödyntämisen edellytykset valita oletusarvoisella Z_DEFAULT_STRATEGY-pakkausstrategialla. Jos ei, haavoittuvuus rajoittuu tiettyihin järjestelmiin, jotka nimenomaisesti käyttävät Z_FIXED-vaihtoehtoa. Jos näin on, haavoittuvuuden aiheuttama vahinko voi olla erittäin merkittävä, koska zlib-kirjasto on de facto standardi ja sitä käytetään monissa suosituissa projekteissa, mukaan lukien Linux-ydin, OpenSSH, OpenSSL, apache httpd, libpng, FFmpeg, rsync, dpkg , rpm, Git , PostgreSQL, MySQL jne.

Lähde: opennet.ru

Lisää kommentti