CVE-2023-45802 : Vulnérabilité de déni de service par fuite de mémoire dans le module mod_http2 d’Apache HTTP Server

Apache HTTP Server est l’un des serveurs web les plus répandus sur Internet, agissant comme infrastructure de base pour une part significative d’applications, d’API et de services exposés au web. Sa fiabilité est fondamentale pour la disponibilité de nombreuses activités en ligne.

Cette vulnérabilité présente un risque élevé de Déni de Service (DoS) distant non authentifié. Un attaquant peut faire planter n’importe quel serveur Apache vulnérable et accessible publiquement sans avoir besoin d’identifiants ou d’accès préalable. Cela rend possibles des attaques simples et répétables pouvant entraîner des temps d’arrêt de service significatifs, avec pour conséquences des pertes de revenus, l’insatisfaction des clients et des dommages réputationnels.

Bien que cette CVE spécifique ne figure pas encore dans le catalogue des vulnérabilités exploitées connues (KEV) de la CISA, il s’agit d’une variante de l’attaque bien connue HTTP/2 Rapid Reset (CVE-2023-44487), largement exploitée dans la nature. Un exploit de preuve de concept public est disponible pour la CVE-2023-45802, abaissant considérablement la barrière pour les attaquants. Toute organisation exécutant un serveur Apache HTTP Server exposé publiquement avec le module mod_http2 activé est en danger immédiat.

ProduitApache HTTP Server
Date06-12-2025 12:29:58

Résumé technique

La cause principale de cette vulnérabilité est une fuite de mémoire (CWE-401 : Absence de libération de mémoire après la fin du cycle de vie) au sein du module mod_http2 du serveur. Le logiciel ne désalloue pas correctement la mémoire associée à un flux HTTP/2 lorsque celui-ci est annulé par un client via une trame RST_STREAM.

La séquence technique de l’attaque est la suivante :

  1. Un attaquant établit une connexion HTTP/2 persistante avec un serveur vulnérable.
  2. L’attaquant envoie une requête pour démarrer un nouveau flux.
  3. Immédiatement après l’envoi de la requête, l’attaquant envoie une trame RST_STREAM pour annuler ce même flux.
  4. Le gestionnaire mod_http2 traite la réinitialisation mais ne libère pas la mémoire allouée pour le contexte de la requête initiale.
  5. L’attaquant répète ce cycle de “requête et réinitialisation” des milliers de fois sur la même connexion, faisant croître linéairement et sans limite la consommation de mémoire du serveur Apache. Finalement, le système d’exploitation termine le processus pour éviter une instabilité sur l’ensemble du système, provoquant un déni de service.
// Pseudo-code conceptuel de la logique défaillante
void handle_stream_reset(h2_stream* stream) {
    // La logique pour supprimer le flux est exécutée.
    // ...
    // VULNÉRABILITÉ : La mémoire allouée pour le contexte de la requête
    // du flux et les données associées n'est PAS libérée ici.
    // free(stream->request_memory); // <-- Cette étape est manquante.
}
  • Versions affectées : Apache HTTP Server 2.4.57 et 2.4.58.
  • Version corrigée : Apache HTTP Server 2.4.59 et ultérieures.

Recommandations

  • Correctif immédiat : Mettre à jour toutes les instances d’Apache HTTP Server vers la version corrigée 2.4.59 ou ultérieure. C’est la forme de mitigation la plus efficace.

  • Mitigations :

    • S’il n’est pas possible d’effectuer la mise à jour immédiatement, envisagez la désactivation temporaire du protocole HTTP/2. Cela peut être fait en commentant la ligne LoadModule http2_module dans la configuration du serveur et en redémarrant le service. Notez que cela peut avoir des implications sur les performances des applications web.
    • Placez le serveur derrière un reverse proxy, un équilibreur de charge ou un réseau de diffusion de contenu (CDN) ayant implémenté des mitigations contre les attaques DoS basées sur HTTP/2 comme Rapid Reset.

  • Threat hunting & surveillance :

    • Implémentez et surveillez des alertes pour des augmentations anormales et prolongées de l’utilisation de la mémoire pour les processus du serveur httpd (ou équivalent). La croissance de la mémoire résultant de cette attaque est constante et ne diminue normalement pas avec le temps.
    • Bien que difficile à détecter dans les journaux standard, des surveillances réseau spécialisées ou des journaux provenant d’un Web Application Firewall (WAF) peuvent révéler des IP clients uniques établissant des connexions HTTP/2 persistantes avec un taux anormal de création et de réinitialisation de flux.

  • Réponse aux incidents :

    • Si l’attaque est en cours, identifiez l’adresse IP d’origine et appliquez un blocage temporaire au niveau du pare-feu réseau ou du dispositif périmétrique.
    • Avant de redémarrer un processus serveur ayant planté, tentez de collecter un dump mémoire pour analyse forensique si cela est prévu par vos procédures de réponse aux incidents.

  • Défense en profondeur :

    • Assurez-vous que des systèmes de surveillance et d’alerte automatisés sont actifs pour tous les paramètres critiques de santé du serveur, y compris la mémoire, le CPU et le nombre de connexions.
    • Implémentez un Web Application Firewall (WAF) avec des capacités d’inspection et de limitation du trafic HTTP/2 pour prévenir les comportements abusifs.

[Callforaction-THREAT-Footer]

Leave a Reply

Your email address will not be published. Required fields are marked *