Va ser detectada una vulnerabilitat a zlib

fa poc es va donar a conèixer la notícia d'una vulnerabilitat a la biblioteca zlib ja catalogada sota CVE-2018-25032 que provoca un desbordament del memòria intermèdia en intentar comprimir una seqüència de caràcters especialment preparada en les dades entrants.

En la seva forma actual, els investigadors van demostrar la possibilitat de trucar a una terminació anormal per tant, encara no s'ha estudiat si el problema pot tenir conseqüències més greus.

S'esmenta que la vulnerabilitat s'ha manifestat des de zlib 1.2.2.2 i afecta la versió actual de zlib 1.2.11. Cal destacar que es va proposar un pegat que corregeix la vulnerabilitat el 2018, però els desenvolupadors no li van parar esment i no van llançar una versió correctiva (la biblioteca zlib es va actualitzar per última vegada el 2017).

Aquest error va ser informat per Danilo Ramos d'Eideticom, Inc que va estar a l'aguait 13 anys abans de ser trobat! L'error va ser introduït a zlib 1.2.2.2, amb l'addició de l'opció Z_FIXED. L'opció força utilitzar codis Huffman fixos. Per entrades rares amb
una gran quantitat de partits distants, el memòria intermèdia pendent en què les dades comprimides sescriuen poden sobreescriure. Això dóna com a resultat una sortida corrupta a causa de distàncies no vàlides, i pot resultar en accessos fora de límits, fallant laplicació.

la vulnerabilitat es manifesta si el flux dentrada conté una gran quantitat de coincidències per empaquetar, a les que s'aplica l'empaquetatge en funció dels codis Huffman fixos. En determinades circumstàncies, el contingut del memòria intermèdia en què es col·loca el resultat comprimit es pot superposar amb la memòria on s'emmagatzema la taula de freqüències de símbols. Com a resultat, s'observa la formació de dades comprimides incorrectes i un bloqueig degut a l'escriptura fora del límit del memòria intermèdia.

la vulnerabilitat només es pot explotar mitjançant una estratègia de compressió basada en codis fixos de Huffman. S'escull una estratègia similar quan l'opció Z_FIXED s'inclou explícitament al codi (un exemple d'una seqüència que provoca un bloqueig en utilitzar l'opció Z_FIXED). A jutjar pel codi l'estratègia Z_FIXED també es pot triar automàticament si els arbres òptims i estàtics calculats per a les dades tenen la mateixa mida.

La solució aquí combina el memòria intermèdia de distància i el literal/longitud búfers en un sol búfer de símbol. Ara tres bytes dl'espai de memòria intermèdia s'obre per a cada literal o longitud/distància parell consumit, en lloc dels dos bytes anteriors això assegura
que el memòria intermèdia pendent no pot sobreescriure la taula de símbols, ja que la longitud/distància màxima comprimida del codi fix és de 31 bits, i ja que hi ha quatre bytes despai pendent per cada tres bytes de lespai de símbols.

Encara no és clar si les condicions per explotar la vulnerabilitat poden coincidir amb l'estratègia de compressió Z_DEFAULT_STRATEGY, que s'aplica per defecte.

Si no, la vulnerabilitat es limitarà a certs sistemes específics on s'aplica explícitament l'opció Z_FIXED. En cas afirmatiu, el dany de la vulnerabilitat pot ser molt significatiu, ja que la biblioteca zlib és l'estàndard de facto i s'usa en molts projectes populars, inclòs el nucli de Linux, OpenSSH, OpenSSL, apatxe httpd, libpng, FFmpeg, rsync , dpkg. , rpm, Git, PostgreSQL, MySQL, etc.

També s'esmenta que els paràmetres seleccionats sota els quals es manifesta la vulnerabilitat en triar lestratègia de compressió per defecte Z_DEFAULT_STRATEGY. En condicions reals, l'atac encara es considera improbable, ja que l'explotació utilitzant la seqüència revelada requereix configurar el paràmetre memLevel a 1, mentre que el nivell 8 està seleccionat per defecte.

Un exemple d'una seqüència de bloqueig quan s'anomena «deflateInit2(&strm, 7, Z_DEFLATED, 15, 1, Z_DEFAULT_STRATEGY)» (level=7, windowBits=15, memLevel=1).

Finalment cal esmentar que la solució tampoc no està inclosa encara en els paquets oferts per les distribucions, per la qual cosa es pot fer un seguiment de la publicació de correccions per distribucions en aquestes pàgines: DebianRHELFedoraSUSEUbuntu, Arch LinuxOpenBSD  FreeBSDNetBSD, a més que la biblioteca zlib-ng no es veu afectada pel problema.

Si estàs interessat en conèixer més a l'respecte, pots consultar els detalls en el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.