Falla critica scoperta nel ReportLab Toolkit: rischio esecuzione remota di codice
Un exploit per una vulnerabilità di ReportLab, usata per generare PDF da HTML, mette a rischio milioni di utenti. Disponibile un aggiornamento di sicurezza
Un ricercatore ha rivelato un esperimento pratico di una falla che permette l'esecuzione remota di codice, nota come RCE, che colpisce il ReportLab Toolkit. Questo strumento, una libreria Python molto utilizzata da numerosi progetti per convertire i file HTML in PDF, ha un volume di download mensile di circa 3.5 milioni sulla piattaforma PyPI (Python Package Index). L'exploit di prova (PoC) per tale falla, identificata come CVE-2023-33733, è stato pubblicato ieri su GitHub, accompagnato da una spiegazione che fornisce dettagli tecnici sulla vulnerabilità, aumentando così la probabilità di sfruttamento in natura.
Bypass del "rl_safe_eval" e rischio di accesso a funzioni pericolose
Il problema emerge dalla capacità di eludere le restrizioni di sandbox sulla funzione "rl_safe_eval". Questa funzione ha il compito di prevenire l'esecuzione di codice maligno, e il suo bypass può portare l'attaccante ad accedere a funzioni integrate di Python potenzialmente pericolose. La funzione "rl_safe_eval" è stata introdotta come misura di sicurezza per prevenire un problema di esecuzione remota di codice simile, scoperto nel 2019, ragion per cui il ricercatore si è concentrato sul suo bypass.
Creazione di funzioni e oggetti maligni e potenziale esecuzione di azioni arbitrarie
Il PoC presentato recupera la funzione integrata "type", che aiuta a creare una nuova classe chiamata "Word". Questa eredita dalla classe "str" e può eludere i controlli di sicurezza, fornendo accesso a attributi sensibili come "code". Successivamente, "type" è richiamato su se stesso per aggirare i controlli safe eval relativi alle restrizioni sul conteggio degli argomenti. Ciò consente all'attaccante di abusare della funzione "type" originale per creare nuove classi e oggetti. Ciò porta alla costruzione di una funzione maligna dal bytecode di una funzione compilata che, se eseguita, può compiere un'azione arbitraria. Nell'esempio del ricercatore, chiama un comando OS per creare un file chiamato "exploited" nella directory "/tmp/".
Rischi associati all'exploit e raccomandazioni per la sicurezza
L'intero codice dell'exploit deve essere eseguito con eval in una singola espressione, quindi utilizza il trucco della "list comprehension" per strutturarlo in tal modo. Elyas Damej, ricercatore di Cure53, avverte nel suo scritto che l'exploit della CVE-2023-33733 è semplice come incorporare codice maligno in un file HTML che verrà convertito in PDF su software che utilizza la libreria ReportLab. La vasta diffusione di questa libreria e la pubblicazione di un exploit rendono molti utenti a rischio. I fornitori di software che utilizzano la libreria possono mitigare il rischio alla catena di fornitura applicando l'aggiornamento di sicurezza disponibile. Damej ha informato BleepingComputer che il problema è stato segnalato agli sviluppatori di ReportLab al momento della scoperta, e una correzione è stata apportata con la versione 3.6.13, rilasciata il 27 aprile 2023. Il ricercatore ha chiarito che la vulnerabilità colpisce tutte le versioni precedenti della libreria.
Seguici su Instagram per altre pillole come questa01/06/2023 05:49
Marco Verro