Otkrivena je ranjivost u zlib-u

Nedavno objavljena je vijest o ranjivosti u zlib biblioteci već katalogiziran pod CVE-2018-25032 što uzrokuje prelijevanje bafera pri pokušaju komprimiranja posebno pripremljene sekvence znakova u dolaznim podacima.

U svom sadašnjem obliku, istraživači su demonstrirali mogućnost nazivanja abnormalnog prekida procesa, tako da još nije proučeno da li problem može imati ozbiljnije posljedice.

Spominje se da je ranjivost manifestuje se od zlib 1.2.2.2 i utiče na trenutnu verziju zlib 1.2.11. Važno je napomenuti da je zakrpa koja popravlja ranjivost predložena 2018. godine, ali programeri nisu obratili pažnju na to i nisu objavili korektivnu verziju (zlib biblioteka je posljednji put ažurirana 2017.).

Ovu grešku je prijavio Danilo Ramos iz Eideticom, Inc bio je u potrazi 13 godina prije nego što je pronađen! Greška je uvedena u zlib 1.2.2.2, uz dodatak opcije Z_FIXED. Opcija prisiljava korištenje fiksnih Huffmanovih kodova. Za rijetke unose sa
puno udaljenih utakmica, međuspremnik na čekanju u kojem komprimirani podaci koji se upisuju mogu se prepisati. To rezultira oštećenim izlazom zbog nevažeće udaljenosti i može rezultirati pristupom izvan granica, rušenje aplikacije.

Ranjivost manifestira se ako ulazni tok sadrži veliki broj podudaranja spakovati, kome pakovanje se primjenjuje na osnovu Huffmanovih kodova fiksno. Pod određenim okolnostima, sadržaj srednjeg bafera u koji se nalazi komprimirani rezultat može se preklapati s memorijom u kojoj je pohranjena tablica frekvencije simbola. Kao rezultat toga, uočava se formiranje netočnih komprimiranih podataka i pad zbog pisanja izvan granice bafera.

Ranjivost može se iskoristiti samo strategijom kompresije zasnovanom na fiksnim Huffmanovim kodovima. Slična strategija se bira kada je opcija Z_FIXED eksplicitno uključena u kod (primjer sekvence koja uzrokuje pad kada se koristi opcija Z_FIXED). Sudeći po kodu, strategija Z_FIXED se također može automatski odabrati ako optimalno i statičko stablo izračunato za podatke imaju istu veličinu.

Rješenje ovdje kombinuje bafer udaljenosti i literal/dužinu bafere u jedan bafer simbola. Sada tri bajta dbaferski prostor se otvara za svaki literal ili dužinu/udaljenost potrošeni par, umjesto prethodna dva bajta to osigurava
da bafer na čekanju ne može prepisati tabelu simbola, jer maksimalna komprimirana fiksna dužina/udaljenost koda je 31 bit, i pošto postoje četiri bajta slobodnog prostora za svaka tri bajta prostora simbola.

Još nije jasno da li uslovi za iskorištavanje ranjivosti mogu odgovarati strategiji kompresije Z_DEFAULT_STRATEGY, koja se primjenjuje prema zadanim postavkama.

U suprotnom, ranjivost će biti ograničena na određene specifične sisteme gdje je opcija Z_FIXED eksplicitno primijenjena. Ako je tako, šteta od ranjivosti može biti vrlo značajna, jer je zlib biblioteka de facto standard i koristi se u mnogim popularnim projektima, uključujući Linux kernel, OpenSSH, OpenSSL, apache httpd, libpng, FFmpeg, rsync, dpkg. , rpm, Git, PostgreSQL, MySQL, itd.

Takođe se spominje da odabrane parametre pod kojima se ranjivost manifestuje pri odabiru zadane strategije kompresije Z_DEFAULT_STRATEGY. U realnim uslovima, napad se i dalje smatra malo verovatnim, budući da eksploatacija pomoću otkrivene sekvence zahtijeva postavljanje parametra memLevel na 1, dok je nivo 8 odabran po defaultu.

Primjer sekvence zaključavanja kada se poziva "deflateInit2(&strm, 7, Z_DEFLATED, 15, 1, Z_DEFAULT_STRATEGY)" (level=7, windowBits=15, memLevel=1).

Konačno treba napomenuti da rješenje također nije uključeno još uvijek u paketima koje nude distribucije, tako da možete pratiti objavljivanje popravki po distribucijama na ovim stranicama: DebianRHELfedoraSUSEubuntu, Arch LinuxOpenBSD  FreeBSDNetBSD, plus na zlib-ng biblioteku problem ne utiče.

Ako vas zanima više o tome, možete potražiti detalje Na sledećem linku.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.