È stata rilevata una vulnerabilità in Ghostscript che potrebbe consentire l'esecuzione di codice

Pochi fa giorni hanno rilasciato la notizia di ciò che è stato identificato una vulnerabilità in Ghostscript (CVE-2020-15900) cosa potrebbe causare la modifica del file e l'esecuzione di comandi arbitrari quando si aprono documenti PostScript con formattazione speciale.

Per coloro che non hanno familiarità con Ghostscript dovrebbe saperlo questo è un motore di rendering per Postscript e contenuto PDF ed è comunemente usato per convertire documenti PDF e Postscript in immagini per scopi di anteprima, miniatura e stampa.

Viene anche utilizzato per la riproduzione di documenti di qualità completa per molti visualizzatori di PDF, inclusi i visualizzatori più diffusi su Android, ed è concesso in licenza da diverse grandi aziende come Google per il rendering nel cloud.

Informazioni sulla vulnerabilità in Ghostscript

Il bug è stato identificato nell'uso dell'operatore di ricerca PostScript non standard in un documento che permette di provocare un overflow di tipo uint32_t quando si calcola la dimensione, sovrascrivere le aree di memoria fuori dal buffer assegnato e ottenere l'accesso ai file sul filesystem, che può essere utilizzato per organizzare un attacco per eseguire codice arbitrario sul sistema (ad esempio, aggiungendo comandi a ~ / .bashrc o ~ / .profile).

Lo snippet trovato da AFL inseriva una stringa vuota nello stack: le parentesi vuote (), copiarono il riferimento a questo, risultando in uno stack con due stringhe vuote () () e poi fece la ricerca inversa. In altre parole, stava cercando una stringa vuota in una stringa vuota, a partire dalla fine.

Sfortunatamente hanno perso un caso limite in cui viene cercata la stringa vuota. Quando si cerca una stringa vuota, questo viene definito come successo immediato: non c'è niente da cercare, quindi saltiamo fino alla fine. Tuttavia, il risultato deve essere suddiviso nei valori pre-partita, corrispondenza e post-partita. Sfortunatamente, il codice presupponeva che avessimo guardato almeno una volta e calcolato la lunghezza del risultato post-partita in modo errato sottraendo uno da zero, risultando in un ritorno al valore massimo: 4,294,967,295.

Questo errore è un difetto di danneggiamento della memoria in cui esiste la possibilità di guasto e succede tutto il tempo. Non c'è bisogno di occuparsi di stack guard, ecc., Basta leggere e scrivere quello che vuoi su un enorme segmento di memoria. Ciò ha reso abbastanza facile per qualcuno che non è uno scrittore esperto di exploit sfruttarlo.

A causa di questo underflow, questa stringa non era mai stata assegnata e non occupava spazio reale, ma aveva una lunghezza che si estendeva a un altro ricordo. Cercare di leggere o scrivere quella memoria in indirizzi casuali andrebbe oltre i limiti di memoria, quindi tutti i fallimenti di fuzzing. Tuttavia, potremmo memorizzare il riferimento per consentirne l'utilizzo utilizzando questo frammento di codice:

È importante tenerne conto le vulnerabilità in Ghostscript sono più gravipoiché questo pacchetto è utilizzato in molte popolari applicazioni di elaborazione PostScript e PDF. Ad esempio, Ghostscript viene chiamato durante la creazione di miniature sul desktop, durante l'indicizzazione dei dati in background e durante la conversione delle immagini.

Per un attacco riuscito, in molti casi, è sufficiente scaricare semplicemente il file di exploit o navigare nella directory con esso in Nautilus.

Le vulnerabilità in Ghostscript possono essere sfruttate anche tramite driver di immagine basato sui pacchetti ImageMagick e GraphicsMagick, passando un file JPEG o PNG, che contiene codice PostScript invece di un'immagine (questo file verrà elaborato in Ghostscript, poiché il tipo MIME è riconosciuto dal contenuto e senza dipendere dall'estensione).

Soluzione

Il problema riguarda le versioni dalla 9.50 alla 9.52 (Il bug esiste dalla versione 9.28rc1, ma secondo i ricercatori che hanno identificato la vulnerabilità, è apparso dalla versione 9.50).

Ma una correzione è stata già proposta nella versione 9.52.1 in aggiunta a quella esono stati pubblicati aggiornamenti di pacchetti di patch per alcune distribuzioni Linux come Debian, Ubuntu e SUSE.

Considerando che i pacchetti in RHEL non sono interessati.

fonte: https://insomniasec.com


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.