Présentation de la vulnérabilité

Une faille d’exécution de code à distance (RCE) a été découverte dans le module HTTP/2 d’Apache HTTP Server. Elle résulte d’une condition de concurrence dans la fonction assign_headers(). Selon les données de Wiz, 64 % des environnements cloud hébergent encore des instances vulnérables, ce qui en fait l’une des menaces les plus répandues du secteur.

Mécanisme technique

Le module HTTP/2 traite les en‑têtes de requête dans assign_headers(), qui associe chaque champ à une structure interne. Lorsqu’un client envoie simultanément plusieurs trames contenant des en‑têtes identiques, le code ne synchronise pas correctement l’accès à la table de hachage partagée. Un thread peut alors libérer une entrée pendant qu’un autre thread y écrit, créant un pointeur dangling. Un attaquant contrôle le contenu de l’en‑tête injecté et, grâce à ce pointeur corrompu, exécute du code arbitraire dans le processus serveur, qui tourne généralement avec les privilèges du compte www-data ou root si le serveur est lancé en tant que tel.

Impact et portée

Le vecteur d’attaque exploite uniquement le protocole HTTP/2 ; les serveurs configurés sans ce module ne sont pas affectés. La large adoption d’HTTP/2 dans les services cloud explique le taux de 64 % de ressources exposées. Une compromission peut conduire à la prise de contrôle du serveur, à l’accès aux bases de données locales, ou à la mise en place de portes dérobées persistantes. Les environnements qui utilisent des conteneurs ou des fonctions serverless sont particulièrement exposés, car le processus compromis peut être réinstancié rapidement, amplifiant la surface d’attaque.

Mitigation et correctifs

Apache a publié la version 2.4.71, qui intègre un verrouillage renforcé autour de la table d’en‑têtes et supprime la condition de concurrence. Les administrateurs doivent mettre à jour vers cette version ou toute version ultérieure. En alternative, la désactivation du support HTTP/2 (Protocols h2 http/1.1) élimine immédiatement le vecteur d’exploitation, bien que cela puisse impacter les performances de connexion multiplexée. Il est recommandé de scanner les déploiements avec des outils de détection de version et de vérifier la présence du flag mod_http2.c dans la configuration. Aucun identifiant CVE n’est fourni dans la source, ce qui limite le suivi automatisé des correctifs dans les bases de données de vulnérabilité.