
Exploit proof-of-concept per Apache Struts S2-072 (CVE-2026-73633), che dimostra l'esaurimento di CPU e memoria inviando richieste JSON appositamente predisposte al plugin JSON di Struts.
Il riempimento JSON del plugin JSON body abilitato lato server ("JSON filling" è una funzionalità centrale fornita dal plugin JSON di Struts 2, che può essere semplicemente intesa come un meccanismo automatico di conversione dei dati).
Il parser della funzionalità di riempimento JSON, quando elabora gli array JSON, legge l'intero contenuto JSON del corpo della richiesta in memoria in una sola volta (caricamento elemento per elemento).
Causando consumo di memoria (e consumo di CPU).
Ho usato WSL2 e Tomcat per distribuire un'applicazione Struts e ho creato una pagina di login con nome utente admin e password 123456.
Nei test reali, l'aumento più evidente del computer è stato l'utilizzo della CPU, seguito dalla memoria; inoltre, una volta completata la richiesta, l'utilizzo della CPU viene rilasciato.
Quando la memoria va in OOM, viene attivata la raccolta GC, quindi la memoria non si riempie mai completamente e non causa affatto un crash.
Provoca solo una carenza di risorse del server del contenitore: una volta raggiunto un valore fisso di occupazione della memoria (il punto di attivazione dell'OOM), non aumenta più; la memoria viene ripetutamente recuperata dal GC e rioccupata, poi recuperata di nuovo…………
La crescita della CPU è proporzionale al valore di riempimento (--size).
git clone https://github.com/CuteeCat/CVE-2026-73633.git
cd CVE-2026-73633
cd docker
docker-compose build
docker-compose up -d
cd ..
python poc.py --url http://127.0.0.1:8080/login.action --local