Vulnerabilità in OpenOffice che consente l'esecuzione di codice all'apertura di un file

Nella suite per ufficio Apache OpenOffice è stata individuata una vulnerabilità (CVE-2021-33035) che consente l'esecuzione di codice all'apertura di un file appositamente progettato nel formato DBF. Il ricercatore che ha scoperto il problema ha avvertito di creare un exploit funzionante per la piattaforma Windows. La correzione della vulnerabilità è attualmente disponibile solo sotto forma di patch nel repository del progetto, incluso nelle build di prova di OpenOffice 4.1.11. Non ci sono ancora aggiornamenti per il ramo stabile.

Il problema è causato dal fatto che OpenOffice si affida ai valori fieldLength e fieldType nell'intestazione dei file DBF per allocare memoria, senza verificare che il tipo di dati effettivo nei campi corrisponda. Per effettuare un attacco, è possibile specificare un tipo INTEGER nel valore fieldType, ma inserire dati più grandi e specificare un valore fieldLength che non corrisponde alla dimensione dei dati con il tipo INTEGER, che porterà alla coda dei dati dal campo in fase di scrittura oltre il buffer allocato. Come risultato di un buffer overflow controllato, il ricercatore è stato in grado di ridefinire il puntatore di ritorno della funzione e, utilizzando tecniche di programmazione orientate al ritorno (ROP - Return-Oriented Programming), ottenere l'esecuzione del suo codice.

Quando si utilizza la tecnica ROP, l'attaccante non tenta di mettere il proprio codice in memoria, ma opera su pezzi di istruzioni macchina già disponibili nelle librerie caricate, terminando con un'istruzione di ritorno di controllo (di norma, queste sono le estremità delle funzioni di libreria). . Il lavoro dell'exploit si riduce alla costruzione di una catena di chiamate a blocchi simili (“gadget”) per ottenere la funzionalità desiderata. I gadget utilizzati nell'exploit di OpenOffice erano codice della libreria libxml2 utilizzata in OpenOffice, che, a differenza dello stesso OpenOffice, è stata compilata senza i meccanismi di protezione DEP (Data Execution Prevention) e ASLR (Address Space Layout Randomization).

Gli sviluppatori di OpenOffice sono stati informati del problema il 4 maggio, dopodiché la divulgazione pubblica della vulnerabilità era prevista per il 30 agosto. Poiché l'aggiornamento del ramo stabile non è stato completato entro la data prevista, il ricercatore ha rinviato la divulgazione dei dettagli al 18 settembre, ma gli sviluppatori di OpenOffice non sono riusciti a creare la versione 4.1.11 entro questa data. È interessante notare che durante la stessa ricerca è stata identificata una vulnerabilità simile nel codice di supporto del formato DBF in Microsoft Office Access (CVE-2021–38646), i cui dettagli verranno divulgati in seguito. Nessun problema riscontrato in LibreOffice.

Fonte: opennet.ru

Aggiungi un commento