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 (> 0x200 soit 512) avant memcpy et 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