
Configurazione e riproduzione dell'exploit per CVE-2022-42889 Text4Shell.
Per trovare la documentazione completa sulla configurazione e ricreazione dell'exploit, consultare il file "CVE-2022-42889-Project Vulnerability Exploitation Report". La macchina virtuale utilizzata per costruire ed eseguire l'exploit non è inclusa in questo repository.
Setup e ricreazione dell'exploit per CVE-2022-42889 Text4Shell.
CVE-2022-42889, nota anche come "Text4Shell", era una vulnerabilità critica nella libreria Apache Commons Text, una libreria frequentemente utilizzata nelle applicazioni Java per l'elaborazione del testo e per fornire aggiunte alla gestione del testo dello standard Java Development Kit (JDK). Le versioni della libreria Apache Commons Text, risalenti al 2018, dalla 1.5 alla 1.9, sono state segnalate come affette. La vulnerabilità deriva da una gestione non sicura dell'input all'interno della classe StringSubstitutor, che consente agli attaccanti di sfruttare le funzionalità di interpolazione delle stringhe della libreria. Ciò può portare all'esecuzione remota di codice (RCE) durante l'elaborazione di input appositamente predisposti, comportando rischi significativi per le applicazioni che si basano su questa libreria. Pertanto, CVE-2022-42889 è stata considerata una vulnerabilità critica e ha ricevuto un punteggio base CVSS 3.x di 9.8, a causa del grave impatto che potrebbe avere sui sistemi colpiti, incluso il compromesso completo del sistema.
Questa vulnerabilità è stata paragonata alle famigerate vulnerabilità Log4Shell (CVE-2021-44228) e Spring4Shell (CVE-2022-22965) a causa del suo potenziale di sfruttamento nelle applicazioni basate su Java. A differenza di Log4Shell e Spring4Shell, che erano vulnerabili anche nei casi d'uso più semplici, non tutti gli utenti della libreria Apache Commons Text sarebbero stati colpiti, poiché la libreria deve essere utilizzata in un modo specifico per esporre la superficie di attacco e rendere la vulnerabilità sfruttabile.
La dimostrazione dell'exploit utilizza la prova di concetto su GitHub di cyberhack255, che fornisce tutti gli script e gli strumenti necessari per eseguire l'exploit. Di seguito una breve descrizione di come procederà lo sfruttamento:
text4shell-poc.jar). Utilizza l'immagine runtime ufficiale OpenJDK 8 basata su Alpine Linux, che fornisce un ambiente minimale e leggero. Il file installa bash per consentire lo scripting bash durante la dimostrazione. La porta 8080 è esposta per consentire l'accesso esterno al container durante l'esecuzione dell'exploit.
Questa PoC consiste nel creare un payload malevolo che sfrutta il meccanismo di sostituzione delle stringhe nella libreria Apache Commons Text. Il payload avrà come target la chiave di lookup script invocando il metodo StringSubstitutor.createInterpolator(). Per questa demo, il payload creerà remotamente un nuovo file all'interno del container Docker.