
Proof-of-Concept-Exploit für die Denial-of-Service-Schwachstelle des Apache-Struts-JSON-Plugins (CVE-2026-73633), der CPU- und Speichererschöpfung durch manipulierte JSON-Arrays demonstriert.
Das JSON-Befüllen durch das serverseitig aktivierte JSON-Body-Plugin („JSON-Befüllung“ ist eine Kernfunktion des JSON-Plugins von Struts 2 und kann vereinfacht als ein automatischer Datenkonvertierungsmechanismus verstanden werden).
Der Parser der JSON-Befüllung liest bei der Verarbeitung von JSON-Arrays den gesamten JSON-Inhalt des Anforderungstexts auf einmal in den Speicher (elementweises Laden). Dies verursacht einen Ressourcenverbrauch (und einen CPU-Verbrauch).
Ich habe mit WSL2 und Tomcat eine Struts-Anwendung bereitgestellt und eine Anmeldeseite erstellt, mit Benutzername admin und Passwort 123456.
Im tatsächlichen Test war der auffälligste Anstieg die CPU-Auslastung des Computers, gefolgt vom Arbeitsspeicher. Nach Ende der Anforderung (TCP-Verbindung beendet) wird nur die CPU-Auslastung freigegeben, der Arbeitsspeicher wird nicht aktiv freigegeben.
(Bei Standardkonfiguration betrug die Testzeit 3 Minuten; die CPU-Auslastung des Hosts stieg von 7 auf 32, der Arbeitsspeicher von 9,8 GB auf 11 GB) — weit davon entfernt, einen Absturz zu verursachen.
Es verursacht lediglich eine angespannte Ressourcenlage auf dem Container-Server. Sobald der Speicherverbrauch auf einen festen Wert gestiegen ist, steigt er nicht weiter an. Dieser feste Wert ist proportional zum Füllwert (--size).