Red Hot Cyber

Sicurezza informatica, cybercrime, hack
news, e altro ancora
  • English

Dopo log4shell ecco Text4shell: la nuova falla critica di Apache Commons Text

Una nuova vulnerabilità critica CVE-2022-42889 alias Text4shell, simile ai vecchi Spring4shell e log4shell, è stata originariamente segnalata da Alvaro Muñoz sulla popolare libreria Apache Commons Text.

Si tratta di una vulnerabilità classificata con gravità critica 9,8 ed è sempre un’esecuzione di codice in modalità remota (RCE) che consente agli aggressori di eseguire codice arbitrario sul computer e compromettere l’intero host.

Advertisements

Le versioni interessate di Apache Commons Text vanno dalla1.5 alla 1.9 ed è stato corretto nella versione 1.10.

Apache Commons Text è una libreria Java descritta come “una libreria focalizzata su algoritmi che lavorano su stringhe“. Possiamo vederlo come un toolkit di manipolazione del testo generico.

Advertisements

Anche se hai familiarità con la codifica, potresti esserti imbattuto in Commons Text come una dipendenza nel tuo codice o potrebbe essere utilizzato da un’applicazione che stai attualmente eseguendo nel tuo laptop o ambiente di produzione.

La vulnerabilità interessa la classe dell’interpolatore StringSubstitutor, che è inclusa nella libreria Commons Text. 

Un interpolatore predefinito consente ricerche di stringhe che possono portare all’esecuzione di codice in remoto. Ciò è dovuto a un difetto logico che rende le chiavi di ricerca “script”, “dns” e “url” interpolate per impostazione predefinita, al contrario di ciò che dovrebbe essere, secondo la documentazione della classe StringLookupFactory. Tali chiavi consentono a un utente malintenzionato di eseguire codice arbitrario tramite ricerche.

Per sfruttare le vulnerabilità, devono essere soddisfatti i seguenti requisiti :

Advertisements
  • Eseguire una versione di Apache Commons Text dalla versione 1.5 alla 1.9;
  • Utilizzare l’interpolatore StringSubstitutor

È importante specificare che l’interpolatore StringSubstitutor non è così ampiamente utilizzato come la sostituzione di stringhe in Log4j, che ha portato a Log4Shell.

Per riprodurre l’attacco, il componente vulnerabile è stato distribuito in un container Docker, accessibile da un’istanza EC2, che sarebbe stato controllato dall’attaccante. Usando il comando netcat (nc), possiamo aprire una reverse shell sull’applicazione vulnerabile.

L’applicazione Web vulnerabile espone un’API di ricerca in cui la query viene interpolata tramite StringSubstitutor di Commons Text:

http://web.app/text4shell/attack?search=<query>

Il seguente payload potrebbe essere utilizzato per sfruttare la vulnerabilità e aprire una shell inversa:

Advertisements
carico utile text4shell

Questo payload è composto da “${prefix:name}”, che attiva la ricerca di stringhe. 

Come accennato in precedenza, “script”, “dns” e “url” sono le chiavi che possono essere utilizzate come prefisso per sfruttare la vulnerabilità.

Prima di inviare la richiesta predisposta, è necessario configurare la connessione della shell inversa utilizzando il comando netcat (nc) per l’ascolto sulla porta 9090.

nc -nlvp 9090

Ora possiamo inviare la richiesta realizzata, codificando l’URL del payload, come mostrato di seguito.

Advertisements
Curl payload text4shell cve-2022-42889

Possiamo vedere che l’attaccante ha aperto con successo una connessione con l’applicazione vulnerabile.

text4shell cve-2022-42889 connessione nc

Ora l’attaccante può interagire con la macchina vulnerabile come root ed eseguire codice arbitrario.

Conclusioni

Anche se il CVE-2022-42889 è sfruttabile in condizioni specifiche che rendono la vulnerabilità non così popolare come le altre 2 viste durante quest’anno, è comunque importante intraprendere azioni immediate.

Per sicurezza, applica la patch con l’ultima versione per mitigare le vulnerabilità e usa gli scanner per scoprire se le tue applicazioni sono interessate. 

Advertisements