Sono state scoperte due vulnerabilità di code injection nella piattaforma VMware Spring, dall’impatto grave. In particolare, la vulnerabilità zero-day relativa al Core del framework Spring ha già un exploit denominato Spring4Shell, un nome che evoca la temibile Log4Shell, la vulnerabilità che ha minacciato mezza Internet.
Ci vuole una regia pubblica per fronteggiare la minaccia cibernetica e Log4j ce lo insegna
Indice degli argomenti
Una vulnerabilità su Spring Cloud
Il 28 marzo, la società di sicurezza delle informazioni NSFOCUS ha rilasciato un avviso di sicurezza che delinea una vulnerabilità della funzione Spring Cloud che consente agli aggressori di “fornire uno Spring Expression Language (SpEL) appositamente predisposto come espressione di routing che potrebbe comportare l’accesso alle risorse locali”.
I ricercatori hanno rivelato che questa vulnerabilità della funzione Spring Cloud, a cui è stato assegnato il numero CVE-2022-22963 è classificata con gravità media.
Quale prodotto è interessato dalla vulnerabilità
VMware Spring Cloud è un insieme di progetti open source per sviluppatori che vanno dal rilevamento dei servizi alla gestione della configurazione per sistemi distribuiti basati su Spring.
Spring Cloud Function, in particolare, è un progetto che astrae tutti gli elementi di trasporto e infrastruttura, consentendo agli sviluppatori di concentrarsi sulla creazione di applicazioni basate sulla logica aziendale. Il progetto Spring Cloud è presente anche su GitHub.
La vulnerabilità Spring Cloud in dettaglio
Secondo NSFOCUS, è il parametro spring.cloud.function.routing-expression nell’intestazione della richiesta al web server che attiva la vulnerabilità. Quando viene utilizzato il routing, questo parametro viene considerato come un’espressione SpEL. Le espressioni possono essere iniettate con Expression Language (EL) se non sono adeguatamente salvaguardate.
Alla luce di questo, gli aggressori potrebbero quindi essere in grado di accedere a materiale lato server, interferire con la funzionalità, dirottare gli account utente e altro, a seconda della gravità dell’iniezione di EL.
Azioni di mitigazione
Tra le versioni di Spring Cloud Function interessate ci sono la 3.1.6, 3.2.2 e le precedenti. L’azione di mitigazione è facilmente risolvibile: gli utenti devono urgentemente aggiornare alle versioni Spring Cloud Function 3.1.7 o 3.2.3 per evitare problemi di sicurezza dagli impatti, come descritto, gravi.
A seconda del ramo applicativo utilizzato, dunque, è sufficiente aggiornare o l’una o l’altra versione entrambe contenenti la correzione al problema di injection.
La seconda vulnerabilità sul Core e Spring4Shell
Tracciata come CVE-2022-22965 la vulnerabilità più grave si trova nel Spring Framework e sembra essere stata scoperta il 29 marzo. Questa seconda CVE che non interviene in Spring Cloud, ma direttamente nel Core, può portare all’esecuzione di codice in modalità remota, quindi potrebbe anche essere un vettore per gli aggressori per impiantare malware sui server senza patch.
Cos’è Spring4Shell
Per chiarezza, è doveroso precisare che Spring4Shell è un nome di fantasia, recentemente attribuito da utenti online che si sono occupati dello sfruttamento della vulnerabilità su Spring Framework, predisponendo un apposito exploit.
Il nome è stato scelto, presumibilmente, per riprendere la narrativa dell’ormai noto Log4Shell che ha catturato l’attenzione di gran parte del monto IT pochi mesi fa. Ad ogni modo, le due vicende non hanno niente a che fare tra di loro, né tanto meno i due prodotti coinvolti.
Infatti, il 29 marzo sono stati pubblicati una serie di tweet (ora cancellati) da un account Twitter cinese che mostrava gli screenshot di un nuovo exploit PoC zero-day nella popolare libreria Java Spring Core. Grazie a questo exploit, si rende sfruttabile attivamente dunque questa pericolosa seconda vulnerabilità.
Aggiornare per mitigare il rischio da Spring4Shell
Dal punto di vista tecnico, è confermata essere affetta da vulnerabilità la versione di Spring Core 5.3.17 e precedenti.
Anche in questo caso, la buona notizia è che esiste una mitigazione ufficiale, data dall’aggiornamento già disponibile: in questo caso, portando Spring Framework alla versione 5.2.20 o 5.3.18, in base al ramo di utilizzo in cui ci si trova.
Dunque, anche questa seconda vulnerabilità è stata corretta: il problema importante ora rimane quello di assicurarsi che tutti vengano a conoscenza di questa vulnerabilità e del rispettivo zero-day di sfruttamento, in modo da poter applicare quanto più tempestivamente possibile il proprio aggiornamento.