
Exploit proof-of-concept per la vulnerabilità denial-of-service del plugin JSON di Apache Struts (CVE-2026-73633), che dimostra l'esaurimento di CPU e memoria tramite array JSON appositamente realizzati.
Il popolamento JSON dal plugin JSON body abilitato lato server ("popolamento JSON" è una funzionalità principale fornita dal plugin JSON in Struts 2, che può essere semplicemente intesa come un meccanismo automatico di conversione dei dati.)
Il parser della funzionalità di popolamento JSON, quando elabora array JSON, legge tutto il contenuto JSON del corpo della richiesta in memoria in una sola volta (caricamento elemento per elemento)
Provoca consumo (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 sul computer è stato l'utilizzo della CPU, seguito dalla memoria, e dopo la fine della richiesta (fine della connessione TCP), solo l'utilizzo della CPU viene rilasciato, mentre la memoria non viene rilasciata attivamente
(Con la configurazione predefinita, il test è durato 3 minuti; l'utilizzo della CPU dell'host è passato da 7 a 32, la memoria da 9.8g a 11g) ben lontano dal causare un crash
Ha causato solo una carenza di risorse del server del contenitore; una volta raggiunto un valore fisso di utilizzo della memoria, non aumenta più, e questo valore fisso è proporzionale al valore di riempimento (--size)