
Exploit de prueba de concepto para la vulnerabilidad de denegación de servicio del plugin JSON de Apache Struts (CVE-2026-73633), que demuestra el agotamiento de CPU y memoria mediante arrays JSON manipulados.
El relleno JSON proveniente del plugin JSON body habilitado en el servidor (“JSON filling” es una funcionalidad principal proporcionada por el plugin JSON en Struts 2, que puede entenderse simplemente como un mecanismo automático de conversión de datos).
Cuando el analizador de la funcionalidad de relleno JSON procesa matrices JSON, lee de una sola vez en memoria todo el contenido JSON del cuerpo de la solicitud (carga elemento por elemento).
Provoca consumo (y consumo de CPU).
Implementé la aplicación Struts con wsl2 y tomcat y creé una página de inicio de sesión con el usuario admin y la contraseña 123456.
En las pruebas reales, el aumento más evidente en la computadora fue el uso de CPU, seguido de la memoria; además, después de que finaliza la solicitud (se cierra la conexión TCP), solo se libera el uso de CPU; la memoria no se libera de forma activa.
(Con la configuración predeterminada, el tiempo de prueba fue de 3 minutos: el uso de CPU del host pasó de 7 a 32 y la memoria de 9.8 GB a 11 GB), muy lejos de provocar un colapso.
Solo provoca tensión en los recursos del servidor del contenedor; una vez que sube hasta un valor fijo de uso de memoria, deja de aumentar. Este valor fijo es directamente proporcional al valor de relleno (--size).