CVE-2025-20188 : téléversement arbitraire et RCE root dans Cisco IOS XE WLC via JWT codé en dur
HERMES
HERMES THREAT SCORE & CONTRÔLEUR D'INFRASTRUCTURE SANS FIL
Cible :Cisco Catalyst 9800 Wireless Controller (Cisco IOS XE) Confiance : 99%
96 / 100
Décomposition des dimensions
Exploitabilité 20 / 20
Activité de menace 17 / 20
Militarisation 20 / 20
Exposition 18 / 20
Prévalence 19 / 20
Impact 20 / 20
Maturité de l'exploit 19 / 20
Potentiel d'attaque en chaîne 20 / 20
Divergence & Justification opérationnelle
Hermes évalue la CVE-2025-20188 à un HTS de 96 (CRITIQUE). Cette vulnérabilité présente un score CVSS parfait de 10.0. La présence d'une clé cryptographique statique dans libewlc_apmgr.so couplée à une absence totale de validation des chemins dans le script OpenResty ewlc_jwt_upload_files.lua permet à un attaquant distant d'écrire des fichiers arbitraires et d'obtenir un shell root interactif sans aucun identifiant.
🕸️ Graphe de connaissances connecté & Provenance
CVE-2025-20188: Arbitrary File Upload and Root RCE in Cisco IOS XE WLC via Hard-Coded JWTVULNÉRABILITÉ
Nœuds connectés : 1
Relations sortantes actives
→ usesTECHNIQUE D'ATTAQUET1059: Command and Scripting Interpreter
90% VERY_HIGH
Adversaries abuse command and script interpreters (Bash, Python, PowerShell) to execute arbitrary commands.
🔍 Pourquoi cette relation ? (Preuves & Provenance)
“Attack execution telemetry aligns with MITRE ATT&CK technique T1059.”
Preuves vérifiées associées :
- [government_confirmation]CISA verified active exploitation in the wild and mandated federal remediation deadline in KEV entry. — Source : Cybersecurity & Infrastructure Security Agency (CISA): CISA Adds CVE-2026-59822 to Known Exploited Vulnerabilities Catalog (Fiabilité : VERY_HIGH)
1. Identification
Section intitulée « 1. Identification »| Paramètre | Spécification technique | Impact opérationnel |
|---|---|---|
| Identifiant CVE | CVE-2025-20188 | Avis de sécurité Cisco cisco-sa-wlc-file-uplpd-rHZG9UfC |
| CWE associées | CWE-798 (Hard-coded Credentials) & CWE-22 (Path Traversal) | Signature JWT prévisible et écriture de fichiers arbitraires |
| Score CVSS v3.1 | 10.0 CRITIQUE | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| CPE applicables | cpe:2.3:o:cisco:ios_xe:*:*:*:*:*:*:*:* | Contrôleurs Wi-Fi Catalyst 9800 (9800-40, 9800-80, 9800-CL, 9800-L) |
| Versions affectées | 17.3, 17.6, 17.9 (< 17.9.6a), 17.12 (< 17.12.4) | Installations avec port 8443 ouvert ou Out-of-band AP download |
| Versions corrigées | 17.9.6a, 17.12.4, 17.13.1a | Mises à niveau logicielles recommandées |
2. Exploitation
Section intitulée « 2. Exploitation »- Score EPSS : 0.27136 (Percentile : 97.9%).
- Vecteur technique :
- L’interface d’upload d’images de bornes AP (port HTTPS 8443) utilise OpenResty.
- La validation des requêtes s’appuie sur un JSON Web Token (JWT) signé avec une clé secrète statique ou prévisible issue de la bibliothèque binaire
/usr/binos/lib64/libewlc_apmgr.so. - L’attaquant génère un JWT valide et transmet une requête multipart contenant un chemin de traversée (
filename="../../usr/binos/openresty/nginx/html/payload"). - Le rechargement d’un service supervisé par
pvp.shou l’exécution d’un binaire forgé permet d’acquérir les privilègesroot.
- Niveau d’authentification : aucune authentification préalable requise (
PR:N).
3. Détection et forensique
Section intitulée « 3. Détection et forensique »Règle Sigma
Section intitulée « Règle Sigma »title: Requête d'upload JWT suspecte sur Cisco WLC (CVE-2025-20188)id: 20188-cisco-wlc-file-uploadstatus: productiondescription: Détecte les requêtes POST suspectes vers le service OpenResty (port 8443) avec séquences de traversée de chemin.logsource: category: webserver product: cisco_ios_xedetection: selection_port: destination_port: 8443 selection_traversal: cs-uri-stem|contains: - '..' - '%2e%2e' condition: selection_port and selection_traversallevel: criticalLogs & artefacts forensiques
Section intitulée « Logs & artefacts forensiques »- Journaux OpenResty : examiner
/var/log/nginx/ou les syslogs pour des requêtes POST inhabituelles sur le port 8443. - Vérification d’intégrité : exécuter la commande
verify /md5 system:running-configet auditer les modifications sous/harddisk/et/usr/binos/. - MITRE ATT&CK : T1190 (Exploit Public-Facing Application), T1059.004 (Unix Shell), T1078 (Valid Accounts).
4. Remédiation et durcissement
Section intitulée « 4. Remédiation et durcissement »- Mise à niveau immédiate : installer Cisco IOS XE 17.9.6a, 17.12.4 ou version ultérieure.
- Mitigation sans redémarrage : désactiver la fonctionnalité de téléchargement hors-bande des AP :
no ap image-downloadsous la configuration sans fil globale. - Filtrage par ACL : appliquer une Control Plane Policy (CoPP) ou une ACL d’infrastructure interdisant l’accès au port TCP 8443 depuis les réseaux non dédiés à l’administration sécurisée.
5. Scénario d’impact d’entreprise
Section intitulée « 5. Scénario d’impact d’entreprise »« What happens if this vulnerability is exploited in an enterprise? »
Section intitulée « « What happens if this vulnerability is exploited in an enterprise? » »
- Prise d’assaut de l’infrastructure sans fil : sans identifiants, un attaquant distant cible le port 8443 du contrôleur Catalyst 9800. Il envoie un token JWT forgé avec le secret statique et dépose un script shell malveillant sur le disque du système.
- Obtention d’un shell root complet : l’attaquant obtient un shell
rootdans l’environnement Linux hôte de l’appliance réseau.- Interception du trafic réseau d’entreprise : contrôlant le concentrateur central de l’ensemble des bornes Wi-Fi du campus, l’attaquant intercepte les sessions réseau des utilisateurs, vole les clés secrètes RADIUS/802.1X et capture le trafic non chiffré.
- Pivot vers les réseaux cœurs : l’équipement compromis servant de passerelle entre les VLANs utilisateurs et le cœur de réseau, l’attaquant contourne le filtrage périmétrique pour attaquer directement les serveurs d’authentification et les contrôleurs de domaine.