🔍 Contexte
Publié le 26 octobre 2026 par Sébastien Féry sur le blog FoxIO (https://foxio.io), cet article présente une analyse technique détaillée de trois vulnérabilités découvertes dans GoAhead, un serveur web embarqué déployé dans des centaines de millions d’appareils IoT, OT, pare-feux et systèmes militaires de fabricants tels que Palo Alto Networks, Comcast, D-Link, HP, Canon, Honeywell, GE, Oracle, Siemens, Rockwell, Digi, Lockheed Martin et Boeing.
🐛 Vulnérabilités identifiées
Trois bugs distincts affectent les backends TLS de GoAhead selon la bibliothèque utilisée :
-
GOAHEAD-SA-2026-0006 / CVE-2026-115881 — Backend OpenSSL-compatible (CVSS 9.1 — Critique) : Le CRL est chargé dans le store de certificats via
X509_STORE_load_locations()mais le flagX509_V_FLAG_CRL_CHECKn’est jamais activé. Les certificats clients révoqués sont donc silencieusement acceptés lors du handshake mTLS, même avec la vérification d’émetteur activée. Affecte GoAhead 3.4.5 à 6.1.0. -
GOAHEAD-SA-2026-0005 — Backend Mbed TLS (CVSS 5.9 — Moyen) : Une faute de frappe dans l’appel à
mbedtls_ssl_conf_dh_param_bin()passesizeof(dhm_g)(1 octet) au lieu desizeof(dhm_p)(256 octets) pour le modulus DH 2048 bits. Le modulus est tronqué à 1 octet (valeur 0xFF), réduisant les valeurs possibles du secret partagé à seulement 8. Un observateur passif peut déchiffrer les sessions TLS 1.2 DHE_RSA capturées. Affecte GoAhead 4.0.2 à 6.1.0. La typo date de 2018. -
GOAHEAD-SA-2026-0004 / CVE-2026-115884 — Vérificateur legacy LibreSSL (CVSS 7.4 — Élevé) : Le vérificateur X.509 legacy de LibreSSL 3.2.x et 3.3.2–3.3.6 interrompt la construction de la chaîne sans enregistrer l’erreur de profondeur, remontant à la place l’erreur 20 (
UNABLE_TO_GET_ISSUER_CERT_LOCALLY). GoAhead tolère cette erreur quandVERIFY_ISSUER=0, permettant à une chaîne de certificats dépassant la limite de profondeur (10) d’être acceptée. Affecte GoAhead ≤ 6.1.0 avec LibreSSL 3.2.x ou 3.3.2–3.3.6.
🛠️ Conditions d’exploitation
- OpenSSL : mTLS activé avec un CRL configuré
- Mbed TLS : TLS 1.2 DHE_RSA négocié avec un client acceptant les paramètres DH tronqués
- LibreSSL legacy :
VERIFY_PEER=1etVERIFY_ISSUER=0
🔧 Corrections
GoAhead 6.1.1 (publié le 2 août 2026) corrige les trois vulnérabilités :
- Ajout de
X509_STORE_set_flags(store, X509_V_FLAG_CRL_CHECK)pour OpenSSL - Correction du passage de
sizeof(dhm_p)pour Mbed TLS - Activation de
VERIFY_ISSUER=1ou migration vers LibreSSL 4.x pour le bug de profondeur
📅 Chronologie
- 22 avril 2026 : rapport LibreSSL
- 27 avril 2026 : rapport MbedTLS
- 30 avril 2026 : rapport OpenSSL
- 2 août 2026 : publication de GoAhead 6.1.1
- 12 octobre 2026 : publication des advisories
- 26 octobre 2026 : publication du blog
📄 Nature de l’article
Il s’agit d’une publication de recherche technique avec preuves de concept (PoC disponible sur GitHub), analyse de code source, traces de débogage et fingerprints JA4Scan-TLS pour détecter les backends affectés dans un parc exposé.
🧠 TTPs et IOCs détectés
TTP
- T1600 — Weaken Encryption (Defense Evasion)
- T1553.004 — Subvert Trust Controls: Install Root Certificate (Defense Evasion)
- T1557 — Adversary-in-the-Middle (Collection)
IOC
⚠️ À propos de ces IOC — ils sont extraits automatiquement de l’article original le 29 octobre 2026 et n’ont pas fait l’objet d’une vérification externe. Un indicateur peut avoir été réattribué depuis : une IP de C2 peut redevenir un service légitime, un domaine sinkholé peut changer de propriétaire. Aucune garantie d’exactitude ni d’actualité — contrôlez leur validité avant tout usage opérationnel, en particulier avant de les injecter dans une blocklist ou un SIEM.
🟡 Indice de vérification factuelle : 46/100 (moyenne)
- ⬜ foxio.io — source non référencée (0pts)
- ✅ 13894 chars — texte complet (fulltext extrait) (15pts)
- ✅ 2 IOC(s) (6pts)
- ⬜ pas d’IOC vérifié (0pts)
- ✅ 3 TTPs MITRE identifiées (15pts)
- ✅ date extraite du HTML source (10pts)
- ⬜ aucun acteur de menace nommé (0pts)
- ⬜ 0/2 CVE(s) confirmée(s) (0pts)
🔗 Source originale : https://foxio.io/blog/choose-your-backend-three-tls-bugs-in-goahead