Source: watchTowr Labs – billet technique approfondi analysant, reproduisant et exploitant CVE-2025-9242 dans WatchGuard Fireware OS, avec diff de correctif, chemin protocolaire IKEv2, primitives d’exploitation et artefacts de détection.
• Vulnérabilité et impact
- Type: Out-of-bounds Write / débordement de tampon sur la pile dans le processus iked (IKEv2).
- Impact: exécution de code arbitraire pré-auth sur un appliance périmétrique 🧱 (service IKEv2 exposé, UDP/500).
- Score: CVSS v4.0 = 9.3 (Critique).
- Produits/Services affectés: Mobile User VPN (IKEv2) et Branch Office VPN (IKEv2) configuré avec dynamic gateway peer. Cas résiduel: même après suppression de ces configs, l’appliance peut rester vulnérable si une BOVPN vers un static gateway peer est encore configurée.
- Versions affectées: 11.10.2 → 11.12.4_Update1, 12.0 → 12.11.3, et 2025.1.
• Analyse du correctif et cause racine
- watchTowr Labs a « patch-diffé » 12.11.3 (vulnérable) vs 12.11.4 (corrigée) et ciblé la fonction ike2_ProcessPayload_CERT.
- Avant: copie directe de l’identification fournie par l’attaquant dans un tampon de 520 octets sur la pile via
memcpy, sans vérification de taille. - Après: ajout d’un contrôle de longueur (
> 0x200soit 512) avantmemcpyet tampon local à 512 octets. ✅
• Chemin d’atteinte et exploitation (synthèse)
- Chemin protocolaire: IKE_SA_INIT puis IKE_SA_AUTH; le payload Identification – Initiator (dans IKE_AUTH) atteint la fonction vulnérable avant la validation du certificat.
- Conséquence: corruption de la pile et contrôle du RIP via dépassement du tampon.
- Mitigations observées: NX activé, mais pas de PIE, pas de canaris; absence de /bin/sh dans Fireware OS 12.11.3.
- Chaîne d’exploitation décrite: ROP pour appeler mprotect et rendre la pile exécutable, puis exécution d’un shellcode ouvrant un interpreteur Python3 interactif en reverse TCP (comme root). Escalade décrite: remonter FS en RW, télécharger BusyBox, symlinker /bin/sh.
• Empreinte et détection
- watchTowr a identifié un Vendor ID personnalisé WatchGuard contenant une chaîne base64 permettant un fingerprinting non authentifié de version/build (exemple décodé:
VN=12.11.3 BN=719894). - Un Detection Artefact Generator est publié:
watchtowrlabs/watchTowr-vs-WatchGuard-CVE-2025-9242.
• Ressources et objet de l’article
- L’article renvoie à l’avis officiel WatchGuard et documente une reproduction complète de l’exploitation, du diff de patch au POC d’exécution, afin d’illustrer la gravité et d’outiller la détection. Type: publication de recherche visant l’analyse technique et la démonstration de faisabilité. 🐛🚨
🧠 TTPs et IOCs détectés
TTP
T1203 - Exploitation for Client Execution, T1059.006 - Command and Scripting Interpreter: Python, T1068 - Exploitation for Privilege Escalation, T1574.010 - Hijack Execution Flow: DLL Search Order Hijacking, T1210 - Exploitation of Remote Services, T1134 - Access Token Manipulation
IOC
Vendor ID personnalisé contenant une chaîne base64 pour fingerprinting non authentifié
🔗 Source originale : https://labs.watchtowr.com/yikes-watchguard-fireware-os-ikev2-out-of-bounds-write-cve-2025-9242