Selon watchTowr Labs (labs.watchtowr.com), une vulnérabilité critique CVE-2026-21902 affecte Juniper Junos OS Evolved sur les routeurs PTX et permet une exécution de code à distance non authentifiée avec les privilèges root via le framework On-Box Anomaly Detection.
-
Vulnérabilité: « Incorrect Permission Assignment for Critical Resource » dans le framework On-Box Anomaly Detection (service REST interne) qui se retrouve exposé sur le réseau et actif par défaut, offrant une RCE pré-auth en root. Score annoncé: 9.8.
-
Surface exposée: le service Python (API REST) écoute sur TCP/8160 et, dans l’environnement testé, est lié à 0.0.0.0 (exposition externe), alors qu’il « devrait » n’être accessible que sur une instance de routage interne.
-
Produits/versions concernées: Junos OS Evolved 25.4 avant 25.4R1-S1-EVO et 25.4R2-EVO sont vulnérables. Les versions antérieures à 25.4R1-EVO ne sont pas vulnérables. Impact ciblé: Juniper PTX Series uniquement.
-
Chaîne d’exploitation (haut niveau): l’API permet de définir des Commandes (dont type RE-SHELL), de construire un DAG (workflow), de créer une Instance de DAG (planification), puis de committer la configuration. Le planificateur exécute ensuite la commande via
subprocess.run(..., shell=True)sur la cible, menant à une exécution de commandes arbitraires en root. -
Implémentation: composants clés observés dans
/usr/sbin/monitor/(dontapi_server.py,schedule_enforcer.py) et logique d’exécution qui passe de la récupération de la planification à l’appel de la commande, avec la valeur « syntax » injectée directement dans le shell. -
Preuve de faisabilité: les chercheurs montrent un flux HTTP simplifié (création de commande, DAG, instance, commit) permettant l’exécution à distance, et publient un Detection Artifact Generator (DAG) sur le dépôt
watchtowrlabs/watchTowr-vs-JunosEvolved-CVE-2026-21902. -
IOCs observables (extraits de l’article):
- Port de service: TCP/8160 (API On-Box Anomaly Detection)
- Liaison réseau: 0.0.0.0:8160 (dans l’environnement analysé)
- Fichiers/processus:
/usr/sbin/monitor/api_server.py,/usr/sbin/monitor/schedule_enforcer.py,/usr/sbin/monitor/intent_monitor.py,/usr/sbin/monitor/anomaly_detector_main.py
-
TTPs (MITRE ATT&CK, niveau conceptuel):
- Exploitation d’un service exposé: Exploitation of Public-Facing Application (T1190)
- Exécution de commandes système: Command and Scripting Interpreter (T1059)
Cet article est une publication de recherche visant à documenter une vulnérabilité critique, son exposition involontaire, et une méthode de validation/détection associée.
🧠 TTPs et IOCs détectés
TTP
[‘Exploitation of Public-Facing Application (T1190)’, ‘Command and Scripting Interpreter (T1059)’]
IOC
{‘port’: ‘TCP/8160’, ’network_binding’: ‘0.0.0.0:8160’, ‘files_processes’: [’/usr/sbin/monitor/api_server.py’, ‘/usr/sbin/monitor/schedule_enforcer.py’, ‘/usr/sbin/monitor/intent_monitor.py’, ‘/usr/sbin/monitor/anomaly_detector_main.py’]}
🔗 Source originale : https://labs.watchtowr.com/sometimes-you-can-just-feel-the-security-in-the-design-junos-os-evolved-cve-2026-21902-rce/