CyberGlossary

Vulnérabilités

Injection d'en-tête Host

Aussi appelé: Injection X-Forwarded-Host, Abus de virtual host

Définition

Vulnérabilité où l'application fait confiance à l'en-tête HTTP Host (ou X-Forwarded-Host) pour construire des URLs, permettant de rediriger des utilisateurs ou d'empoisonner des caches.

L'injection d'en-tête Host survient quand le code serveur utilise l'en-tête Host — ou des variantes de proxy comme X-Forwarded-Host — pour construire des URLs absolues (liens de réinitialisation de mot de passe, redirections, src d'images, canoniques, callbacks OAuth) sans validation par liste blanche. L'attaquant manipule l'en-tête pour pointer ces liens vers un domaine hostile, ce qui conduit à l'empoisonnement de réinitialisation de mot de passe, à l'empoisonnement de cache, à du SSRF ou au routage de la réponse vers un hôte attaquant. Le défaut est courant avec les reverse proxies et les frameworks à entrées Host multiples. Mitigations : dériver les URLs depuis un hôte configuré de confiance, valider Host/X-Forwarded-Host par liste blanche, jeter les en-têtes forwarded inconnus en bord de réseau, utiliser HSTS.

Exemples

  • Déclencher une réinitialisation de mot de passe envoyant un lien https://attacker.com/reset?token=... parce que l'app utilise Host.
  • Empoisonner un cache CDN en envoyant X-Forwarded-Host pour que /index émette des URLs de l'attaquant.

Termes liés