Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-53435 — Un investigador de seguridad ofensiva + una IA contra un nuevo n-day: construyendo el primer PoC público para CVE-2026-53435 en una noche de viernes. Registro bruto de 8h20m dentro. | Kitploit
Herramientas/GitHubGitHub/amesianx/cve-2026-53435
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónExplotación de Binarios
GitHubamesianx/cve-2026-53435

CVE-2026-53435

Un investigador de seguridad ofensiva + una IA contra un nuevo n-day: construyendo el primer PoC público para CVE-2026-53435 en una noche de viernes. Registro bruto de 8h20m dentro.

Ver Repositorio
112hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-53435 — Deserialización de Jenkins → Lectura Arbitraria de Archivos (PoC)

Primera prueba de concepto pública para CVE-2026-53435, construida cuando solo existía el aviso y no se había publicado ningún PoC en ninguna parte. Reconstruida a partir de un aviso vago de una línea durante ~8.5 horas un viernes por la noche — no escribiendo el exploit a mano, sino dirigiendo una IA a través de los callejones sin salida, los giros y la verificación hasta que surgió una cadena funcional.

PoC de CVE-2026-53435 leyendo /etc/passwd desde el controlador Jenkins

El PoC alcanzando /etc/passwd en el controlador — lectura arbitraria de archivos confirmada.

CVECVE-2026-53435 (Jenkins SECURITY-3707)
ClaseDeserialización insegura (bypass de ClassFilter vía config.xml)
Impacto (este PoC)Lectura arbitraria de archivos autenticada en el controlador
AfectadoJenkins weekly ≤ 2.567, LTS ≤ 2.555.2
CorregidoJenkins weekly 2.568, LTS 2.555.3
Avisohttps://www.jenkins.io/security/advisory/2026-06-10/ (publicado el 2026-06-10)
Estado al momento de escribirNo existía ningún PoC público (repositorios de PoC en GitHub: 0)

Por qué existe este repositorio

Este es un experimento para mostrar el proceso, no solo el artefacto.

Durante años, la salida de un investigador ofensivo era un único exploit terminado — las 8 horas de caminos equivocados que lo produjeron desaparecían. Este repositorio conserva los caminos equivocados. La transcripción completa y ligeramente editada de un humano + IA trabajando un n-day fresco desde el aviso hasta un PoC funcional se incluye como apéndice.

El punto que demuestra es deliberadamente no "la IA lo hizo". Las 8 horas son la evidencia de que no fue así. La IA nunca generó la cadena de un solo golpe. Lo que llevó el trabajo fue la experiencia en el dominio — saber que el aviso ocultaba un sumidero de deserialización, saber buscar en tipos centrales de Jenkins en lugar de plugins, saber que un DescribableList anterior al parche no imponía su tipo de elemento, y saber cómo verificar una afirmación en lugar de confiar en ella. El valor del investigador no desapareció; se trasladó de escribir el exploit a dirigir, podar y validar.

Ese cambio es lo que vale la pena documentar.


La vulnerabilidad (causa raíz)

Jenkins protege la deserialización con un ClassFilter personalizado que solo permite tipos definidos en el núcleo de Jenkins o en plugins. CVE-2026-53435 consiste en que esto no es suficiente: un atacante que pueda enviar un config.xml puede lograr que Jenkins deserialice un tipo arbitrario del núcleo/plugin en un contexto que nunca lo esperaba, y luego acceder a ese objeto a través de HTTP mediante enrutamiento Stapler.

Este PoC planta un hudson.Plugin$DummyImpl (un tipo del núcleo de Jenkins, por lo que pasa la lista blanca de ubicación) en la lista <properties> de un ListView — un DescribableList<ViewProperty> que, antes del parche, no impone su tipo de elemento. El objeto plantado lleva baseResourceURL=file:/. Enrutar una solicitud HTTP hacia él sirve entonces archivos directamente del sistema de archivos del controlador.

Una cadena genérica de ysoserial no funciona aquí — el gadget debe ser un tipo residente en Jenkins/plugin para sobrevivir al filtro. Esa restricción es todo el juego.


Alcance y divulgación responsable

  • Este PoC demuestra solo el impacto de lectura arbitraria de archivos.
  • El aviso también describe suplantación de usuario y RCE en la consola de scripts mediante la misma primitiva. Esas cadenas se alcanzaron durante la investigación pero se omiten intencionalmente aquí: el CVE se parcheó solo días antes de la publicación, y un RCE listo para usar serviría principalmente para la explotación masiva de instancias sin parchear. La lectura de archivos es suficiente para probar el impacto.
  • La vulnerabilidad ya está parcheada. Todas las pruebas se realizaron contra un laboratorio local aislado (ver más abajo) en la propia máquina del autor. No se tocaron sistemas externos ni de terceros.

Úsalo solo contra sistemas que poseas o para los que tengas autorización explícita para probar.


Prueba: funciona en vulnerable, falla en parcheado

El exploit se ejecutó contra dos contenedores con configuración idéntica — 2.555.2 vulnerable y 2.555.3 parcheado — para confirmar que ejercita este CVE y no alguna primitiva de lectura de archivos no relacionada:

La compilación parcheada acepta la solicitud pero la corrección rechaza el tipo plantado en el momento de la deserialización, por lo que la lista de propiedades vuelve vacía y no hay nada a lo que enrutar. El fallo recae exactamente en el mecanismo que describe el aviso — lo que convierte a esto en un PoC genuino para CVE-2026-53435.


Uso

root@kitploit:~
python3 exploit_cve_2026_53435_v2.py <base_url> <user> <pass> <remote_file> [view_name]

# ejemplo (contra tu propio laboratorio):
python3 exploit_cve_2026_53435_v2.py http://127.0.0.1:8080 <user> <pass> /etc/passwd
  • base_url — http://host:port del objetivo (HTTP simple; no antepongas https a menos que la instancia realmente termine TLS).
  • requiere una cuenta con permiso para enviar un config.xml de vista (View/Configure), además de Overall/Read.

Reproducir el laboratorio

root@kitploit:~
docker compose -f lab/docker-compose.yml up -d
#   vulnerable:  http://127.0.0.1:8080   (Jenkins LTS 2.555.2)
#   parcheado:   http://127.0.0.1:8081   (Jenkins LTS 2.555.3, control negativo)

El laboratorio aprovisiona una base de datos de usuarios solo local mediante inicialización de Groovy para que se pueda ejercitar la ruta autenticada con privilegios bajos sin un IdP externo.


Cronología — ~8.5 horas, un viernes por la noche

root@kitploit:~
2026-06-12 (vie)  15:00 → 23:23   ≈ 8h 20m

  15:00–15:12   Laboratorio construido (docker: vuln 2.555.2 / parcheado 2.555.3) + primer reconocimiento
  15:12–21:00   Análisis del sumidero de deserialización y gadget
                  (los intentos de bypass de Commons-Collections fallaron → giro
                   de propiedades a acciones y de vuelta)
  21:00–22:30   Análisis de ClassFilter + nueva búsqueda de gadgets, restringido a tipos del núcleo
  22:30–23:00   PoC funcional (v1 → v2) + verificación diferencial (vuln vs parcheado)

La mayoría de esas horas fueron análisis, no escritura. El exploit en sí se ensambló en los últimos ~30 minutos — una vez que se conocieron el sumidero y el gadget correctos.


Cómo se construyó esto

Construido con Claude Code (Anthropic), impulsado de forma interactiva por el autor:

  • Modelo principal: Claude Opus 4.8 (Claude Max)
  • Partes: Claude Fable 5 (nivel Mythos-class)

La transcripción completa y ligeramente editada del trabajo está en transcript/ — mantenida en bruto, incluyendo los callejones sin salida. (Editada solo para suavizar algunas líneas de tono y ocultar detalles de la red local; no se eliminó nada técnico.)


Descargo de responsabilidad

Solo para pruebas de seguridad autorizadas, investigación y educación. El autor y los colaboradores no aceptan responsabilidad alguna por mal uso. La vulnerabilidad objetivo está parcheada — actualiza a Jenkins LTS 2.555.3 / weekly 2.568 o posterior.

Descargar herramienta
2.555.2 (vulnerable)2.555.3 (parcheado)
createViewHTTP 200HTTP 200
<properties> almacenado<hudson.Plugin_-DummyImpl/> — sobrevive<properties/> — eliminado
Disparador → /etc/passwdroot:x:0:0:... — leídovacío — bloqueado