Source: AISLE — AISLE détaille la découverte d’une vulnérabilité critique, CVE-2025-13016, dans l’implémentation WebAssembly de Firefox, introduite en avril 2025 et restée indétectée pendant environ 6 mois malgré un test de régression. La faille, notée CVSS 7.5 (High), permet une exécution de code arbitraire et affecte des centaines de millions d’utilisateurs (Firefox 143–début 145 et ESR 140.0–140.4).

🛡️ Détails techniques. La vulnérabilité réside dans la classe template StableWasmArrayObjectElements (js/src/wasm/WasmGcObject.h, ligne 532 vulnérable). Deux erreurs clés: 1) arithmétique de pointeurs incorrecte via un std::copy mélangeant uint8_t* et uint16_t*, provoquant une écriture hors limites (stack buffer overflow) en copiant numElements_ * sizeof(T) éléments au lieu d’octets; 2) mauvaise source de données: utilisation de inlineStorage() (incluant un DataHeader) au lieu de addressOfInlineData()/inlineArrayElements<T>(). Le chemin vulnérable est déclenché lors du fallback GC dans Instance::stringFromCharCodeArray quand l’allocation NoGC échoue sous pression mémoire/GC.

📅 Chronologie et correctif. Introduit le 7 avr. 2025 (Bug 1956768). Découvert par l’analyseur autonome d’AISLE le 2 oct. 2025, confirmé le 14 oct., corrigé le 15 oct., vérifié le 16 oct., et déployé en Firefox 145 et ESR 140.5 le 22 oct. (divulgation publique le 11 nov. 2025). Le correctif typé (inlineArrayElements<T>()) alimente std::copy avec des pointeurs correctement typés et copie exactement numElements_. Les tests internes sous sanitizeurs mémoire ont confirmé l’overflow. Le test de régression n’a pas détecté la faille car: (1) sans ASan, les dépassements sur pile peuvent rester silencieux; (2) il ne vérifiait que 4 caractères; (3) il empruntait surtout le chemin rapide NoGC, évitant le fallback vulnérable.

🔧 Versions/impact. Versions vulnérables: Firefox 143–début 145 et ESR 140.0–140.4; corrigé dans Firefox 145+ et ESR 140.5+; non affecté: ESR 115 et versions <143 (sans WebAssembly GC). Vector CVSS: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:Hattaque réseau via site malveillant, complexité élevée (timing GC), aucun privilège requis, interaction utilisateur requise. 🌍 Impact potentiel sur >180M d’utilisateurs, toutes plateformes (Windows, macOS, Linux, Android). Les principales distributions Linux ont diffusé rapidement les mises à jour.

🧩 IOCs et TTPs

  • IOCs: Aucun indicateur d’attaque spécifique fourni.
  • TTPs: • Exploitation Web via page malveillante • Forçage de la pression mémoire/GC pour activer le fallback vulnérable • Dépassement de tampon (pile) par arithmétique de pointeurs et mauvaise source de données dans le moteur WebAssembly GCRCE dans le processus Firefox.

🔎 Type d’article: rapport technique/« rapport de vulnérabilité » visant à documenter la faille, son exploitation possible, la fenêtre d’exposition et le correctif, ainsi que la valeur de l’analyse autonome d’AISLE.

🧠 TTPs et IOCs détectés

TTP

Exploitation Web via page malveillante, Forçage de la pression mémoire/GC pour activer le fallback vulnérable, Dépassement de tampon (pile) par arithmétique de pointeurs et mauvaise source de données dans le moteur WebAssembly GC, RCE dans le processus Firefox

IOC

Aucun indicateur d’attaque spécifique fourni


🔗 Source originale : https://aisle.com/blog/a-high-severity-webassembly-boundary-condition-vulnerability-in-firefox-cve-2025-13016