
CVE-2026-23813 — Bypass de pre-autenticación en AOS-CX mediante regex de nginx. Script de detección, demostración de bypass, PoC de divulgación de configuración y reglas IDS.
Atacantes remotos no autenticados pueden alcanzar la API REST de gestión de AOS-CX contrabandeando un token
logina través de la expresión regular demasiado permisiva de nginx sobre versiones, exponiendo la superficie de configuración respaldada por OVSDB (incluyendo la credencial de administrador con hash).
| Rama | Vulnerable | Corregida |
|---|---|---|
| 10.17.x | ≤ 10.17.0001 | 10.17.1001 |
| 10.16.x | ≤ 10.16.1020 | 10.16.1030 |
| 10.13.x | ≤ 10.13.1160 | 10.13.1161 |
| 10.10.x | ≤ 10.10.1170 | 10.10.1180 |
python3 detect.py <host[:port]>
Envía un GET de solo lectura. Imprime PATCHED, VULNERABLE o UNKNOWN.
No realiza cambios. Adecuado para barridos de inventario.
python3 bypass_demo.py <host[:port]>
Envía el mismo endpoint dos veces — una normalmente, otra con el contrabando —
e imprime los códigos de respuesta lado a lado. Sin cambio de estado. Vea
docs/root-cause.md para el por qué.
python3 exploit.py <host[:port]>
Solo AOS-CX 10.10.x. Crea un checkpoint a través de la ruta no autenticada,
lee la configuración activa completa, imprime el hash del administrador. La
omisión entre ramas funciona en todas las versiones afectadas, pero esta cadena
de divulgación de configuración depende de un comportamiento del backend específico
de la rama 10.10. El checkpoint persiste en el dispositivo — los endpoints REST
accesibles a través de la omisión no aceptan DELETE; elimínelo mediante
consola/sesión autorizada si es necesario.
Python 3.8+ y requests:
pip install requests
Análisis posterior al parche independiente y PoC por 4252nez — artículo en OffSecKit. Vulnerabilidad original reportada por moonv a través del programa HPE Bugcrowd; este repositorio no tiene afiliación con ese informe.
MIT — consulte LICENSE.
| Archivo | Propósito |
|---|
detect.py | Verificación no destructiva del estado del parche |
bypass_demo.py | Comparación educativa lado a lado del mecanismo de omisión |
exploit.py | PoC de divulgación de configuración (crea un checkpoint) |
detection/nginx-access.md | Firmas de registro para logs de acceso de nginx |
detection/suricata.rules | Regla de Suricata para la forma de URI del contrabando |
docs/root-cause.md | Explicación breve de la causa raíz |
docs/patch-diff.md | La corrección, en un diff |