
CVE-2026-23813 — Bypass de pré-autenticação no AOS-CX via regex do nginx. Script de detecção, demonstração do bypass, PoC de divulgação de configuração e regras de IDS.
Atacantes remotos não autenticados podem acessar a API REST de gerenciamento do AOS-CX ao contrabandear um token
loginatravés da regex de versão excessivamente permissiva do nginx, expondo a superfície de configuração baseada em OVSDB (incluindo a credencial de administrador com hash).
| Branch | Vulnerável | Corrigida |
|---|---|---|
| 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]>
Envia um único GET somente leitura. Exibe PATCHED, VULNERABLE ou UNKNOWN.
Não faz alterações. Adequado para varreduras de inventário.
python3 bypass_demo.py <host[:port]>
Envia o mesmo endpoint duas vezes — uma normalmente, outra com o contrabando —
e exibe os códigos de resposta lado a lado. Nenhuma alteração de estado. Veja
docs/root-cause.md para entender o porquê.
python3 exploit.py <host[:port]>
Somente AOS-CX 10.10.x. Cria um checkpoint pelo caminho não autenticado,
lê a configuração em execução completa, exibe o hash do administrador. O
bypass entre branches funciona em todas as versões afetadas, mas esta
cadeia de divulgação de configuração depende de comportamento do backend específico do
branch 10.10. O checkpoint persiste no dispositivo — os endpoints REST
acessíveis através do bypass não aceitam DELETE; remova-o via console /
sessão autorizada, se necessário.
Python 3.8+ e requests:
pip install requests
Análise independente pós-patch e PoC por 4252nez — artigo no OffSecKit. A vulnerabilidade original foi reportada por moonv através do programa HPE Bugcrowd; este repositório não tem afiliação com esse relatório.
MIT — veja LICENSE.
| Arquivo | Objetivo |
|---|
detect.py | Verificação não destrutiva do status do patch |
bypass_demo.py | Comparação educativa lado a lado do mecanismo de bypass |
exploit.py | PoC de divulgação de configuração (cria um checkpoint) |
detection/nginx-access.md | Assinaturas de log para logs de acesso do nginx |
detection/suricata.rules | Regra do Suricata para o formato de URI de contrabando |
docs/root-cause.md | Breve explicador da causa raiz |
docs/patch-diff.md | A correção, em um único diff |