zlib-i haavatavus, mis ilmneb spetsiaalselt loodud andmete tihendamisel

Zlib teegis tuvastati haavatavus (CVE-2018-25032), mis põhjustab sissetulevates andmetes spetsiaalselt ettevalmistatud märgijada tihendamisel puhvri ületäitumise. Praegusel kujul on teadlased näidanud võimet põhjustada protsessi ebanormaalset lõppemist. Seda, kas probleemil võib olla tõsisemaid tagajärgi, pole veel uuritud.

Haavatavus ilmneb alates versioonist zlib 1.2.2.2 ja mõjutab ka zlib 1.2.11 praegust väljalaset. Tähelepanuväärne on, et haavatavuse parandamiseks pakuti plaastrit juba 2018. aastal, kuid arendajad ei pööranud sellele tähelepanu ega andnud välja parandusväljaannet (zlib teeki uuendati viimati 2017. aastal). Parandus ei sisaldu veel ka distributsioonide pakutavates pakettides. Saate jälgida paranduste avaldamist distributsioonide kaupa järgmistel lehtedel: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD. Zlib-ng teeki probleem ei mõjuta.

Haavatavus ilmneb siis, kui sisendvoog sisaldab suurt hulka pakendatavaid vasteid, millele pakendatakse fikseeritud Huffmani koodide alusel. Teatud asjaoludel võib vahepuhvri sisu, millesse tihendatud tulemus asetatakse, kattuda mäluga, kuhu sümbolisagedustabel on salvestatud. Selle tulemusena genereeritakse valed tihendatud andmed ja need jooksevad kokku, kui kirjutatakse väljaspool puhvri piiri.

Seda haavatavust saab ära kasutada ainult fikseeritud Huffmani koodidel põhineva tihendusstrateegia abil. Sarnane strateegia valitakse siis, kui suvand Z_FIXED on koodis selgesõnaliselt lubatud (näide järjestusest, mis viib suvandi Z_FIXED kasutamisel krahhini). Koodi järgi otsustades saab Z_FIXED strateegiat valida ka automaatselt, kui andmetele arvutatud optimaalsed ja staatilised puud on sama suurusega.

Pole veel selge, kas haavatavuse ärakasutamise tingimusi saab valida Z_DEFAULT_STRATEGY vaiketihendusstrateegia abil. Kui ei, siis on haavatavus piiratud teatud kindlate süsteemidega, mis kasutavad selgesõnaliselt suvandit Z_FIXED. Kui jah, siis võib haavatavusest tulenev kahju olla väga märkimisväärne, kuna zlib-teek on de facto standard ja seda kasutatakse paljudes populaarsetes projektides, sealhulgas Linuxi kernel, OpenSSH, OpenSSL, apache httpd, libpng, FFmpeg, rsync, dpkg , rpm, Git , PostgreSQL, MySQL jne.

Allikas: opennet.ru

Lisa kommentaar