Aller au contenu

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
CRITIQUE

Mesure la pertinence opérationnelle réelle, la militarisation de l'exploit et la posture de menace active.

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 :
ParamètreSpécification techniqueImpact opérationnel
Identifiant CVECVE-2025-20188Avis de sécurité Cisco cisco-sa-wlc-file-uplpd-rHZG9UfC
CWE associéesCWE-798 (Hard-coded Credentials) & CWE-22 (Path Traversal)Signature JWT prévisible et écriture de fichiers arbitraires
Score CVSS v3.110.0 CRITIQUECVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
CPE applicablescpe:2.3:o:cisco:ios_xe:*:*:*:*:*:*:*:*Contrôleurs Wi-Fi Catalyst 9800 (9800-40, 9800-80, 9800-CL, 9800-L)
Versions affectées17.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ées17.9.6a, 17.12.4, 17.13.1aMises à niveau logicielles recommandées

  • Score EPSS : 0.27136 (Percentile : 97.9%).
  • Vecteur technique :
    1. L’interface d’upload d’images de bornes AP (port HTTPS 8443) utilise OpenResty.
    2. 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.
    3. 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").
    4. Le rechargement d’un service supervisé par pvp.sh ou l’exécution d’un binaire forgé permet d’acquérir les privilèges root.
  • Niveau d’authentification : aucune authentification préalable requise (PR:N).

title: Requête d'upload JWT suspecte sur Cisco WLC (CVE-2025-20188)
id: 20188-cisco-wlc-file-upload
status: production
description: 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_xe
detection:
selection_port:
destination_port: 8443
selection_traversal:
cs-uri-stem|contains:
- '..'
- '%2e%2e'
condition: selection_port and selection_traversal
level: critical
  • 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-config et auditer les modifications sous /harddisk/ et /usr/binos/.
  • MITRE ATT&CK : T1190 (Exploit Public-Facing Application), T1059.004 (Unix Shell), T1078 (Valid Accounts).

  1. Mise à niveau immédiate : installer Cisco IOS XE 17.9.6a, 17.12.4 ou version ultérieure.
  2. Mitigation sans redémarrage : désactiver la fonctionnalité de téléchargement hors-bande des AP : no ap image-download sous la configuration sans fil globale.
  3. 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.

« What happens if this vulnerability is exploited in an enterprise? »

Section intitulée « « What happens if this vulnerability is exploited in an enterprise? » »
  1. 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.
  2. Obtention d’un shell root complet : l’attaquant obtient un shell root dans l’environnement Linux hôte de l’appliance réseau.
  3. 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é.
  4. 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.