Fastjson 1.x RCE: vulnerabilita' critica per Spring Boot | Antonio Pedoto
Scopri la vulnerabilita' RCE in Fastjson 1.x, come sfruttarla gli attaccanti e le misure pratiche per proteggere le tue app Java.
Fastjson 1.x RCE: la vulnerabilita' critica che colpisce le app Spring Boot
Hook d'impatto
Nel solo primo trimestre del 2026, le segnalazioni di compromissione di server Java sono aumentate del 27% rispetto allo stesso periodo dell'anno precedente. Una delle cause principali? Una vulnerabilita' RCE (Remote Code Execution) nella libreria Fastjson 1.x, usata da migliaia di applicazioni Spring Boot. Gli attaccanti stanno sfruttando questa falla per eseguire codice arbitrario senza neanche dover autenticarsi.
Spiegazione della minaccia
Cos'e' Fastjson?
Fastjson e' una libreria open source sviluppata da Alibaba per la serializzazione e deserializzazione di JSON in Java. La sua popolarita' deriva dalla velocita' e dalla semplicità d'uso, per cui e' integrata in molti progetti Spring Boot, microservizi e applicazioni enterprise.
Come funziona la vulnerabilita'? La vulnerabilita' (CVE-2026-16723) si attiva quando l'applicazione accetta un payload JSON contenente una chiave speciale @type. Fastjson, nella sua versione 1.x, interpreta la chiave @type e tenta di istanziare la classe indicata, senza alcun controllo di sicurezza. Un attaccante può fornire il nome di una classe pericolosa (es. org.apache.commons.io.FileUtils) insieme a parametri che, una volta istanziati, eseguono comandi di shell. Il risultato: codice arbitrario eseguito con i privilegi del processo Java, tipicamente l'utente tomcat o root.
Chi colpisce? Sviluppatori che usano Fastjson 1.x in Spring Boot senza aver aggiornato la dipendenza. Aziende che hanno servizi esposti direttamente a internet o dietro un firewall debole. Applicazioni legacy che non hanno ancora una strategia di aggiornamento regolare.
Perche' ti riguarda ora Nessuna patch disponibile - Alibaba non ha ancora rilasciato una versione corretta di Fastjson 1.x. Le versioni 2.x risolvono il problema, ma la migrazione non e' automatica. Attacchi in corso - ThreatBook e Imperva hanno confermato che gruppi di threat actor stanno già sfruttando la vulnerabilita' in ambienti di produzione. Impatto elevato - Con un CVSS di 9.0, la vulnerabilita' e' classificata come critica. Un singolo server compromesso può portare a furto di dati, ransomware o uso per ulteriori pivot. Facilita attacchi a catena - Una volta ottenuto l'accesso al processo Java, gli aggressori possono installare backdoor, esfiltrare credenziali e muoversi lateralmente nella rete.
Casi reali (anonimizzati) Caso 1: Un provider di servizi di pagamento online ha subito un'intrusione che ha permesso agli aggressori di prelevare 200.000 euro. L'indagine ha rivelato che l'attacco era stato abilitato da un payload Fastjson inviato a un endpoint di pagamento non autenticato. Caso 2: Una startup di analytics ha subito una compromissione della sua pipeline di ingestione dati. Il server di raccolta, basato su Spring Boot, ha eseguito un comando curl verso un server C2, grazie a una vulnerabilita' Fastjson. Caso 3: Un'azienda di logistica ha rilevato traffico anomalo verso il proprio servizio di tracking. L'analisi ha mostrato che un attaccante aveva sfruttato Fastjson per aprire una reverse shell, ottenendo l'accesso al nodo di orchestrazione Kubernetes.
Come proteggersi - Guida step-by-step
Azioni immediate (5 minuti) Disabilita la deserializzazione di classi pericolose aggiungendo la seguente configurazione in application.properties o application.yml: Blocca l'header Content-Type: application/json su endpoint pubblici che non devono accettare JSON. Usa un firewall applicativo (WAF) per rifiutare richieste con payload sospetti. Aggiorna le dipendenze se possibile: modifica il file pom.xml o build.gradle per passare a Fastjson 2.0.0 o successiva.
Azioni a breve termine (oggi/domani) Implementa una whitelist di classi consentite per la deserializzazione. Esempio in Java: Abilita il logging dettagliato per le richieste JSON. Configura Logback o Log4j per registrare il corpo della richiesta solo se supera una certa dimensione (per non esporre dati sensibili). Esegui una scansione di dipendenza con strumenti come OWASP Dependency-Check o Snyk per identificare tutti i progetti che utilizzano Fastjson 1.x.
Azioni a lungo termine (questa settimana/mese) Migra a Fastjson 2.x o a un'alternativa sicura come Jackson. La migrazione richiede test di regressione, ma riduce drasticamente il rischio. Implementa una policy di aggiornamento: stabilisci che le librerie di terze parti vengano aggiornate entro 30 giorni dalla pubblicazione di una vulnerabilita' critica. Isola i processi Java usando container (Docker) o sandbox. Limita i privilegi del processo con seccomp e AppArmor. Monitora la rete per pattern di comando e controllo (C2) tipici di exploit Fastjson: richieste HTTP POST con payload JSON che includono la chiave @type.
Strumenti consigliati Dependency-Check (gratuito) - Analizza il file pom.xml/build.gradle e segnala vulnerabilita' note. Snyk (gratuito con piani a pagamento) - Scansione continua delle dipendenze e suggerimenti di patch. OWASP ZAP - Proxy per testare gli endpoint JSON e identificare payload pericolosi. WAF (ModSecurity) - Regola per bloccare richieste con @type non consentiti. Docker Bench for Security - Verifica le configurazioni di sicurezza dei container Java.
Checklist finale [ ] Disabilita autoType in Fastjson. [ ] Aggiorna la dipendenza a Fastjson 2.x o a Jackson. [ ] Configura whitelist di classi per la deserializzazione. [ ] Implementa logging dettagliato per payload JSON. [ ] Esegui scansioni di dipendenza con Dependency-Check o Snyk. [ ] Isola i processi Java in container con privilegi ridotti. [ ] Configura un WAF per bloccare richieste sospette. [ ] Monitora traffico di rete per pattern di exploit Fastjson.
FAQ
D1: Devo aggiornare tutte le applicazioni subito? Sì, almeno quelle esposte a internet. Per le app interne, almeno applica le mitigazioni immediate (disabilita autoType).
D2: Posso continuare a usare Fastjson 1.x se aggiungo una whitelist? Puoi ridurre il rischio, ma la libreria rimane vulnerabile. La migrazione a 2.x è la soluzione definitiva.
D3: Il mio WAF blocca già le richieste con @type. È sufficiente? È un buon livello di difesa, ma combina con le configurazioni interne (disabilita autoType).
D4: Come verifico se il mio server è già compromesso? Cerca processi Java inattesi, file di log sospetti e connessioni outbound verso IP non riconosciuti. Usa netstat -tunp e ps -ef grep java.
Risorse CVE-2026-16723 - Dettagli ufficiali: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-16723 Guida Fastjson 2.x - Documentazione Alibaba: https://github.com/alibaba/fastjson/wiki/Upgrade-Guide OWASP Dependency-Check - https://owasp.org/www-project-dependency-check/ Snyk Vulnerability Database - https://snyk.io/vuln/ ModSecurity Rule Set - https://github.com/SpiderLabs/ModSecurity
ATTENZIONE: La vulnerabilita' non ha ancora una patch. Ogni minuto di esposizione aumenta il rischio di compromissione. Implementa le mitigazioni immediate e pianifica la migrazione.
SUGGERIMENTO PRO: Se utilizzi Kubernetes, aggiungi una policy di rete (NetworkPolicy) che limita le comunicazioni outbound dei pod Java solo a host autorizzati.
STRUMENTO GRATUITO: docker run -it --rm owasp/dependency-check --project MyApp --scan /path/to/project - Esegue una scansione completa delle dipendenze.
CHECKLIST RAPIDA: Disabilita autoType. Aggiorna a Fastjson 2.x. Configura whitelist. Attiva WAF. Monitora traffico.
Con queste misure, potrai ridurre drasticamente il rischio derivante dalla vulnerabilita' Fastjson 1.x e proteggere le tue applicazioni Spring Boot da attacchi RCE.
---
Resta Protetto - Seguimi!
Per aggiornamenti quotidiani sulla sicurezza informatica e consigli pratici per proteggerti online: LinkedIn - Articoli e analisi professionali Facebook - Community e aggiornamenti
🔔 Iscriviti alla newsletter per ricevere alert di sicurezza direttamente nella tua inbox!