Vulnerabilità in zlib che si verifica durante la compressione di dati appositamente progettati

Nella libreria zlib è stata identificata una vulnerabilità (CVE-2018-25032) che provoca un overflow del buffer quando si tenta di comprimere una sequenza di caratteri appositamente preparata nei dati in entrata. Nella sua forma attuale, i ricercatori hanno dimostrato la capacità di causare l’interruzione anomala di un processo. Non è stato ancora studiato se il problema possa avere conseguenze più gravi.

La vulnerabilità appare a partire dalla versione zlib 1.2.2.2 e colpisce anche l'attuale versione di zlib 1.2.11. È interessante notare che nel 2018 è stata proposta una patch per correggere la vulnerabilità, ma gli sviluppatori non hanno prestato attenzione e non hanno rilasciato una versione correttiva (la libreria zlib è stata aggiornata l'ultima volta nel 2017). Inoltre il fix non è ancora incluso nei pacchetti offerti dalle distribuzioni. Puoi tenere traccia della pubblicazione delle correzioni da parte delle distribuzioni su queste pagine: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD. La libreria zlib-ng non è interessata dal problema.

La vulnerabilità si verifica se il flusso di input contiene un numero elevato di corrispondenze da comprimere, a cui viene applicata la compressione in base a codici Huffman fissi. In determinate circostanze, il contenuto del buffer intermedio in cui viene inserito il risultato compresso potrebbe sovrapporsi alla memoria in cui è archiviata la tabella delle frequenze dei simboli. Di conseguenza, vengono generati dati compressi errati e si blocca a causa della scrittura al di fuori dei limiti del buffer.

La vulnerabilità può essere sfruttata solo utilizzando una strategia di compressione basata su codici Huffman fissi. Una strategia simile viene scelta quando l'opzione Z_FIXED è abilitata esplicitamente nel codice (un esempio di una sequenza che porta a un arresto anomalo quando si utilizza l'opzione Z_FIXED). A giudicare dal codice, la strategia Z_FIXED può essere selezionata anche automaticamente se gli alberi statici e ottimali calcolati per i dati hanno la stessa dimensione.

Non è ancora chiaro se le condizioni per sfruttare la vulnerabilità possano essere selezionate utilizzando la strategia di compressione predefinita Z_DEFAULT_STRATEGY. In caso contrario, la vulnerabilità sarà limitata ad alcuni sistemi specifici che utilizzano esplicitamente l'opzione Z_FIXED. Se così fosse, il danno derivante dalla vulnerabilità potrebbe essere molto significativo, dal momento che la libreria zlib è uno standard de facto e viene utilizzata in molti progetti popolari, tra cui il kernel Linux, OpenSSH, OpenSSL, apache httpd, libpng, FFmpeg, rsync, dpkg , giri/min, Git, PostgreSQL, MySQL, ecc.

Fonte: opennet.ru

Aggiungi un commento