Netty - CVE-2026-93569

Date de publication :

Il s'agit d'une vulnérabilité dans la méthode HttpConversionUtil.toHttp2Headers() de Netty, qui traduit les requêtes HTTP/1 en HTTP/2 au sein des passerelles et proxys basés sur ce framework.

Netty est un framework Java open source de développement d'applications réseau asynchrones. Il fournit une couche d'abstraction pour les protocoles TCP, HTTP/1.1 et HTTP/2, employée comme moteur de communication bas niveau par de nombreux serveurs d'applications et intergiciels Java, dont plusieurs produits de la gamme Red Hat.

Lorsqu'une requête HTTP/1 comporte à la fois une request-target en forme absolue, dotée de sa propre autorité, et un en-tête Host différent, la fonction retient à tort la valeur du Host pour construire le champ :authority de la requête HTTP/2 générée. L'autorité initialement présente dans la request-target, normalement prioritaire selon les RFC 9112 et 9113, est alors silencieusement écartée. Un attaquant distant non authentifié peut forger une requête dont l'autorité vue par la passerelle, utilisée pour une décision de sécurité, de routage ou de sélection de tenant, diffère de celle réellement transmise au serveur d'origine en HTTP/2. Cette confusion protocolaire s'exploite pour contourner des vérifications d'accès, empoisonner un cache partagé entre hôtes, ou détourner l'acheminement d'une requête vers un back-end non prévu.

Elle permet à un attaquant distant non authentifié de contourner des contrôles de sécurité appliqués en amont sur la passerelle.

Informations

La faille est activement exploitée : Non

Un correctif existe : Oui

Une mesure de contournement existe : Non

Risques

Contournement de la politique de sécurité

Exploitation

La vulnérabilité exploitée est du type
CWE-444 : Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')

Détails sur l'exploitation
•   Vecteur d'attaque : Réseau
•   Complexité de l'attaque : Faible
•   Privilèges nécessaires pour réaliser l'attaque : Aucun
•   Interaction d'un utilisateur ayant accès au produit est-elle nécessaire : Non
•   L'exploitation de la faille permet d'obtenir des droits privilégiés : Non

Preuve de concept
Une preuve de concept est disponible en sources ouvertes.

Systèmes ou composants affectés

•   Netty (io.netty:netty-codec-http2) versions 4.1.0.Final jusqu'à 4.1.137.Final (branche 4.1)
•   Netty (io.netty:netty-codec-http2) versions 4.2.0.Final jusqu'à 4.2.17.Final (branche 4.2)
•   Red Hat build of Apache Camel 4 for Quarkus 3
•   Red Hat build of Apache Camel for Spring Boot 4
•   Red Hat build of Apicurio Registry 3
•   Red Hat build of Debezium 3
•   Red Hat Build of Keycloak
•   Red Hat build of Quarkus
•   Red Hat Data Grid 8
•   Red Hat Fuse 7 (correctif différé par l'éditeur, statut "Fix deferred")
•   Red Hat JBoss Enterprise Application Platform 7 (correctif différé par l'éditeur, statut "Fix deferred")
•   Red Hat JBoss Enterprise Application Platform 8

Solutions ou recommandations

•   Netty (io.netty:netty-codec-http2) versions 4.1.138.Final et supérieures (branche 4.1)
•   Netty (io.netty:netty-codec-http2) versions 4.2.18.Final et supérieures (branche 4.2)
•   Red Hat build of Apache Camel 4 for Quarkus 3, Apache Camel for Spring Boot 4, Apicurio Registry 3, Debezium 3, Red Hat Build of Keycloak, Red Hat build of Quarkus, Data Grid 8, JBoss EAP 8 : correctif à intégrer via errata Red Hat (RHSA), non encore publiée à la date de rédaction
•   Red Hat Fuse 7 et Red Hat JBoss EAP 7 : correctif différé, aucune date communiquée par l'éditeur à la date de rédaction
•   Red Hat Single Sign-On 7 : correctif à intégrer sur la branche 7.6 (dernière branche active), migration vers Red Hat build of Keycloak recommandée à moyen terme