
CVE-2026-23813 — AOS-CX bypass di pre-autenticazione tramite regex nginx. Script di rilevamento, demo di bypass, PoC di divulgazione delle configurazioni e regole IDS.
Attaccanti remoti non autenticati possono raggiungere l'API REST di gestione di AOS-CX intrufolando un token
loginattraverso l'espressione regolare troppo permissiva di nginx, esponendo la superficie di configurazione basata su OVSDB (inclusa la credenziale hash dell'amministratore).
| Ramo | Vulnerabile | Risolta |
|---|---|---|
| 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]>
Invia una sola GET in sola lettura. Stampa PATCHED, VULNERABLE o UNKNOWN.
Non apporta modifiche. Adatto per scansioni d'inventario.
python3 bypass_demo.py <host[:port]>
Invia lo stesso endpoint due volte — una normalmente, una con lo smuggle —
e stampa i codici di risposta affiancati. Nessun cambiamento di stato. Vedi
docs/root-cause.md per il perché.
python3 exploit.py <host[:port]>
Solo AOS-CX 10.10.x. Crea un checkpoint tramite il percorso non autenticato,
legge l'intera configurazione in esecuzione, stampa l'hash dell'amministratore. Il
bypass cross-branch funziona su tutte le versioni affette, ma questa catena di
divulgazione della configurazione si basa su un comportamento del backend specifico
del ramo 10.10. Il checkpoint persiste sul dispositivo — gli endpoint REST
raggiungibili tramite il bypass non accettano DELETE; rimuoverlo tramite
console/sessione autorizzata se necessario.
Python 3.8+ e requests:
pip install requests
Analisi post-patch indipendente e PoC di 4252nez — articolo su OffSecKit. La vulnerabilità originale è stata segnalata da moonv tramite il programma HPE Bugcrowd; questo repository non ha alcuna affiliazione con tale segnalazione.
MIT — vedi LICENSE.
| File | Scopo |
|---|
detect.py | Controllo non distruttivo dello stato della patch |
bypass_demo.py | Confronto didattico del meccanismo di bypass |
exploit.py | PoC di divulgazione della configurazione (crea un checkpoint) |
detection/nginx-access.md | Firme di log per i log di accesso di nginx |
detection/suricata.rules | Regola Suricata per la forma URI dello smuggle |
docs/root-cause.md | Breve spiegazione della causa principale |
docs/patch-diff.md | La correzione, in un diff |