20 ottobre 2022
Text4shell: nuova vulnerabilità critica in Apache
E' stata individuata una nuova vulnerabilità critica, dopo Spring4shell e log4shell, legata ad Apache. In dettaglio, la CVE-2022-42889, ribattezzata Text4shell, è stata segnalata nella popolare libreria Apache Commons Text. Questa vulnerabilità è classificata con gravità critica. 9.8, come vulnerabilità di esecuzione codice da remoto (RCE).
Apache Commons Text è una libreria Java open Source con un "sistema di interpolazione" che consente agli sviluppatori di modificare, decodificare, generare stringhe sulla base di ricerche di stringhe immesse. Ad esempio, il passaggio della ricerca della stringa ${base64Decoder:SGVsbG9Xb3JsZCE=} al sistema di interpolazione fa si che la libreria la converta nel corrispettivo valore in base64 "HelloWorld!".
La nuova vulnerabilità CVE-2022-42889 si basa proprio su questo meccanismo: è causata dalla valutazione, da parte del sistema di interpolazione, di script non sicuri che potrebbero appunto attivare l'esecuzione di codice al momento di elaborare input dannosi con le configurazioni di default della libreria. Il difetto poggia infatti sul fatto che le chiavi di ricerca "script", "dns", "url" ecc... sono interpolate per impostazione predefinita: sono queste chiavi che consentono all'utente malintenzionato di eseguire codice arbitrario tramite ricerche.
Questa vulnerabilità riguarda le versioni che vanno dalla 1.5 alla 1.9 di Apache Commons Text: è stata invece corretta nella versione 1.10, come si legge nella mailing list Apache.
C'è da preoccuparsi di questa vulnerabilità?
Inizialmente questa falla ha destato grande preoccupazione data la popolarità e la diffusione di questa libreria. Tuttavia alcuni ricercatori hanno fatto notare come neppure tutte le versioni tra la 1.5 e la 1.9 siano vulnerabili a questo exploit e come lo sfruttamento sia collegato anche alla versione JDK in uso. Viene sottolineato anche che è necessario, per sfruttare questa vulnerabilità, che sia in uso l'interpolatore StringSubstitutor, che non è così diffuso come la sostituzione delle stringhe in Log4j che ha determinato Log4shell.
Il team di sicurezza di Apache, inoltre, ha affermato che l'interpolazione è una caratteristica documentata ed è meno probabile che le applicazioni che usano la libreria passino inavvertitamente input non sicuri senza convalida.
I fatti confermano il punto: questa vulnerabilità è rimasta non patchata per sette mesi, sono stati registrati tentativi di exploit ma non sono seguite segnalazioni di violazioni anche dopo la pubblicazione degli exploit stessi.
Insomma, la vulnerabilità è critica, ma sembra avere portata limitata.
Ad ora, quindi, sarà sufficiente il passaggio alla versione 1.10 di Apache Commons Text. Segnaliamo questo plugin Burp che scansiona le app in cerca di componenti non patchate contro la CVE-2022-42889.