
Exploit de prueba de concepto para CVE-2024-24824 que demuestra cómo una primitiva de carga de clases arbitrarias puede transformarse en ejecución remota de código en despliegues vulnerables de Graylog.
Este repositorio contiene el exploit de prueba de concepto presentado en mi charla:
Explotando la carga arbitraria de clases en la JVM
Míralo aquí si te interesa: YouTube
El exploit está dirigido a CVE-2024-24824 (pequeño error tipográfico en las diapositivas), una vulnerabilidad de carga arbitraria de clases que afecta a Graylog versiones 2.0.0 hasta 5.2.3.
En lugar de tratar la carga arbitraria de clases como un objetivo final, esta investigación explora cómo se puede abusar de la primitiva para descubrir y construir técnicas de explotación cada vez más potentes analizando el classpath de la JVM disponible.
Dada la capacidad de instanciar clases arbitrarias con datos controlados por el atacante, el desafío se convierte en:
¿Qué podemos hacer realmente con eso?
La respuesta depende enteramente de qué clases existen dentro del classpath de la aplicación objetivo.
La investigación adjunta exploró cómo una primitiva de carga arbitraria de clases podía transformarse en múltiples primitivas de explotación, incluyendo:
Este repositorio se centra en el exploit de ejecución remota de código demostrado durante la charla.
A continuación se muestra el resultado esperado de ejecutar el exploit en una instancia vulnerable:

exploit/
exploit source
docs/
slides
La charla adjunta recorre el proceso de explotación de principio a fin:
El objetivo es demostrar el proceso de pensamiento que hay detrás del desarrollo de exploits en lugar de simplemente lanzar un exploit.
Este código se publica únicamente con fines educativos, investigación de seguridad y pruebas de seguridad autorizadas.
Solo prueba sistemas de los que seas propietario o para los que tengas permiso explícito de evaluación.