🔍 Contexte

Le 22 mai 2026, X41 D-Sec GmbH publie l’advisory X41-2026-002 concernant une vulnérabilité de sévérité haute (CVSS 4.0 : 7.0) affectant le framework Python Starlette, découverte lors d’un audit de code source sans rapport direct le 27 janvier 2026.

🐛 Vulnérabilité

Starlette reconstruit l’URL cliente à partir du header HTTP Host et du chemin de la requête selon le schéma f"{scheme}://{host_header}{path}", sans valider le contenu du header Host conformément à la RFC 9112 Section 3.2.

Un attaquant peut injecter un chemin arbitraire dans la partie Host du header, ce qui provoque une divergence entre request.url.path et le chemin réellement demandé. Le routage de Starlette utilise le chemin HTTP réel, mais les middlewares et endpoints exposent request.url.path, qui peut être manipulé.

💥 Impact

Cette incohérence peut conduire à :

  • Contournement d’authentification (authentication bypass)
  • SSRF (Server-Side Request Forgery)
  • Dans certains cas, exécution de code à distance (RCE) sur les systèmes affectés

X41 D-Sec indique avoir identifié plusieurs implémentations de middlewares dans des projets open source populaires vulnérables à cette technique.

🎯 Preuve de concept

Un PoC est fourni : en envoyant une requête avec un header Host: foo? vers /admin, un middleware d’authentification basé sur request.url.path peut être contourné, retournant un 200 OK au lieu d’un 403 Forbidden.

c u r l - i - H ' H o s t : f o o ? ' l o c a l h o s t : 8 0 0 0 / a d m i n # 2 0 0 O K

📦 Versions affectées et correctif

  • Affectées : starlette >= 0.8.3, < 1.0.1
  • Corrigée : starlette 1.0.1 (publiée le 21 mai 2026)
  • GitHub Security Advisory : GHSA-86qp-5c8j-p5mr
  • CVE : à assigner
  • CWE : 436

📅 Chronologie

  • 27/01/2026 : Découverte lors d’un audit
  • 04/02/2026 : PoC créé, vendor contacté
  • 05/02/2026 : Réponse du vendor
  • 01/03/2026 : Patch proposé par le vendor
  • 21/05/2026 : Patch publié
  • 22/05/2026 : Advisory public

📄 Type d’article

Il s’agit d’un advisory de sécurité technique publié par X41 D-Sec GmbH, dont le but est de divulguer publiquement une vulnérabilité dans Starlette après coordination avec le vendor et publication du correctif.

🧠 TTPs et IOCs détectés

TTP

  • T1190 — Exploit Public-Facing Application (Initial Access)
  • T1550 — Use Alternate Authentication Material (Defense Evasion)
  • T1599 — Network Boundary Bridging (Defense Evasion)

🟡 Indice de vérification factuelle : 40/100 (moyenne)

  • ⬜ x41-dsec.de — source non référencée (0pts)
  • ✅ 5088 chars — texte complet (fulltext extrait) (15pts)
  • ⬜ aucun IOC extrait (0pts)
  • ⬜ pas d’IOC à vérifier (0pts)
  • ✅ 3 TTPs MITRE identifiées (15pts)
  • ✅ date extraite du HTML source (10pts)
  • ⬜ aucun acteur de menace nommé (0pts)
  • ⬜ pas de CVE à vérifier (0pts)

🔗 Source originale : https://x41-dsec.de/lab/advisories/x41-2026-002-starlette/