CVE-2026-111497 : exécution de code à distance et divulgation de mémoire via le décodeur Brotli natif
ID du bulletin : 2026-155-AWS
Portée : AWS
Type de contenu : important (nécessite une attention particulière)
Date de publication : 28/10/2026 15 h 00 PDT (heure du Pacifique)
Date de dernière mise à jour : 30 octobre 2026 14 h 00 PDT (heure du Pacifique)
Description :
AWS a connaissance de la vulnérabilité CVE-2026-111497, un dépassement de tampon dans la bibliothèque native de décompression Brotli, qui a été traitée pour la première fois dans les mises à jour de sécurité de Node.js d’octobre 2026. Le décodage de données compressées au format Brotli et spécialement conçues à cet effet pourrait permettre à un tiers d’exécuter du code ou de lire la mémoire du processus au sein d’une application affectée. Ce problème concerne le décodage Brotli au-delà du seul environnement Node.js. Les correctifs fournis par d’autres éditeurs ne sont pas encore tous disponibles.
Les informations relatives aux services AWS concernés sont fournies ci-dessous. Nous mettrons à jour ce bulletin dès que nous disposerons de plus amples informations.
Statut actuel des mesures d’atténuation :
AWS Lambda
Le service géré AWS Lambda n’est pas concerné. Les environnements d’exécution Lambda pour .NET et Node.js sont concernés par ce problème.
Les environnements d’exécution Lambda pour Python, Ruby et OS-only provided.al2023 n’incluent pas la bibliothèque Brotli. Si vous incluez la bibliothèque Brotli dans votre propre déploiement de fonctions dans ces situations, nous vous recommandons de le redéployer avec une version corrigée.
- Statut en fonction de l’exécution :
- Node.js 22, 24, 26 – Images de base du conteneur : mises à jour. Reconstruisez et redéployez dès maintenant. - Packages ZIP, phases 1 et 2 terminées.
- .NET 8, 9 (conteneur uniquement), 10 – Images de base du conteneur : mises à jour – Packages ZIP, phases 1 et 2 terminées. - Node.js :
- Node.js 24 : en raison d’une régression connue dans la version 24.22.1 de Node.js, nous avons initialement appliqué des mises à jour ciblées à la version stable actuelle plutôt que de passer à la dernière version de Node.js. La régression est maintenant corrigée dans la version 24.22.2. Nous sommes en train de publier cette version ; la phase 1 est déjà terminée et la phase 2 devrait être terminée le 31 octobre 2026. - Notez que les environnements d’exécution obsolètes, notamment Node.js 18 et 20, ne reçoivent pas de mises à jour de sécurité. Nous recommandons aux clients de passer à une version plus récente.
- Application de la mise à jour :
- Images de conteneur : une fois que l’image de base mise à jour est disponible, reconstruisez et redéployez les fonctions de votre image de conteneur à partir de la dernière image de base.
- Packages ZIP : les mises à jour de l’environnement d’exécution géré sont déployées en deux phases :
○ Phase 1 : Lambda applique l’environnement d’exécution mis à jour lorsque vous créez ou mettez à jour une fonction (via l’API UpdateFunctionCode ou UpdateFunctionConfiguration)
○ Phase 2 : Lambda met automatiquement à jour les fonctions – utilisant le mode de mise à jour automatique de l’environnement d’exécution – qui n’ont pas encore reçu cette mise à jour
Ces phases se déploient par vagues dans les régions AWS. Nous accélérons notre processus de publication habituel. Nous ne pouvons donc pas prévoir quand le déploiement dans les différentes régions sera terminé.
Une fois la phase 1 terminée, vous pouvez récupérer la version corrigée de l’environnement d’exécution en mettant à jour le code ou la configuration de votre fonction. Une mise à jour sans modification n’est pas suffisante. Un moyen simple de déclencher une modification consiste à ajouter une variable d’environnement. Le script bash suivant utilise l’AWS CLI pour ajouter ou mettre à jour la variable d’environnement TRIGGER_RUNTIME_UPDATE, tout en préservant les variables d’environnement existantes.
| # 1. Définissez le nom de votre fonction FUNCTION_NAME="my-function" # 2. Récupérez les variables d’environnement actuelles sous forme de chaîne JSON CURRENT_VARS=$(aws lambda get-function-configuration \ --function-name "$FUNCTION_NAME" \ --query "Environment.Variables" \ --output json) # 3. Intégrez la nouvelle variable MERGED=$(echo "$CURRENT_VARS" \ | jq ' if . == null then {} else . end | if .TRIGGER_RUNTIME_UPDATE then .TRIGGER_RUNTIME_UPDATE = ((.TRIGGER_RUNTIME_UPDATE | tonumber) + 1 | tostring) else .TRIGGER_RUNTIME_UPDATE = "1" end ') # 4. Mettez à jour la configuration de la fonction aws lambda update-function-configuration \ --function-name "$FUNCTION_NAME" \ --environment "{\"Variables\": $MERGED}" |
- Comment vérifier que votre fonction est mise à jour : La version du correctif de l’environnement d’exécution est indiquée dans la ligne INIT_START des journaux de votre fonction. Cette ligne est générée lors de chaque démarrage à froid de l’environnement d’exécution et apparaît généralement en haut de chaque flux de journaux. Pour Node.js, recherchez nodejs:22.mainline.v157 ou une version ultérieure (Node.js 22), ou bien nodejs:24.mainline.v114 ou une version ultérieure (Node.js 24). La propriété process.version ne reflète pas la mise à jour de Node.js 24. Pour .NET, recherchez dotnet:8.mainline.v165 ou une version ultérieure (.NET 8), ou bien dotnet:10.mainline.v113 ou une version ultérieure (.NET 10).
AWS Amplify
Les applications utilisant le rendu côté serveur (Server-Side Rendering) sur AWS Amplify Hosting, exécutées avec Node.js 22 ou Node.js 24, bénéficieront automatiquement de la mise à jour de sécurité dès que l’environnement d’exécution géré sous-jacent sera mis à jour. Aucune action n’est nécessaire de la part du client.
Si votre configuration d’environnement d’exécution spécifie une version de Node.js antérieure à la version 22, nous vous conseillons de migrer vers une version prise en charge (22 ou 24) afin de bénéficier de cette mise à jour de sécurité, ainsi que des futures mises à jour.
AWS App Runner
Un environnement d’exécution Node.js géré par App Runner, mis à jour, a été déployé dans toutes les régions AWS le 26 octobre 2026.
Services n’ayant pas fait l’objet d’un déploiement depuis le 26 octobre 2026 : redéployez votre service une seule fois. Le déploiement suivant intégrera l’environnement d’exécution mis à jour, sans nécessiter de modification de configuration.
Services associés à une version spécifique d’un environnement d’exécution plus ancien : mettez d’abord à jour la version de l’environnement d’exécution, puis procédez à un redéploiement. Un simple redéploiement ne suffira pas à faire passer un service associé à une version figée vers l’environnement d’exécution mis à jour.
Amazon CloudWatch Synthetics
Canaries pour Node.js : les environnements d’exécution canary pour Node.js utilisent l’environnement d’exécution géré par Lambda et bénéficient des mêmes mises à jour de phase 1 et de phase 2 que celles décrites ci-dessus. Aucune intervention n’est requise pour les canaries qui reçoivent des mises à jour automatiques de leur environnement d’exécution (échéance : 30 octobre 2026).
Canaries pour Python Selenium : l’environnement d’exécution canary pour Python Selenium inclut la bibliothèque Brotli. Une mise à jour est en cours. Nous mettrons à jour ce bulletin avec la version corrigée de l’environnement d’exécution ainsi que toute mesure à prendre par les clients, dès que ces informations seront disponibles.
AWS CodeBuild
- La mise à jour des images prédéfinies de CodeBuild est en cours. Objectif d’achèvement : 30 octobre 2026. Les images mises à jour incluent Node.js 22.23.4, 24.22.1 et 26.12.1 ; Ubuntu libbrotli1 1.0.9-2ubuntu0.1 / 1.1.0-2ubuntu0.1 ; ainsi qu’Amazon Linux 2023 brotli 1.1.0-1.amzn2023.0.2.
- Images prédéfinies utilisant la balise la plus récente, avec l’option Toujours utiliser l’image la plus récente activée et création d’AMI à la demande : aucune action n’est requise. Votre prochain build utilise l’image mise à jour.
- Images prédéfinies associées à une version ou à un résumé spécifique : mettez à jour la référence vers l’image mise à jour.
- Images personnalisées créées à partir d’une image de base prédéfinie de CodeBuild : reconstruisez votre image à partir de l’image de base mise à jour.
- Buildspecs qui choisissent Node.js 18 ou 20 : les images mises à jour n’incluent plus Node.js 18 ou 20. Mettez à jour votre buildspec pour utiliser Node.js 22, 24 ou 26.
AWS Elastic Beanstalk
- La version 6.11.12 de la plateforme Elastic Beanstalk Node.js, qui inclut Node.js 24.22.1 et 22.23.4, a été publiée le 22 octobre 2026.
- Pour vérifier, exécutez node --version, dpkg-query -W libbrotli1 (Ubuntu) ou rpm -q brotli (Amazon Linux 2023) dans votre build.
- Environnements pour lesquels les mises à jour de plateforme gérées sont activées : votre environnement sera mis à jour vers la version corrigée de la plateforme lors de votre prochaine fenêtre de maintenance hebdomadaire. Pour effectuer la mise à jour plus rapidement, appliquez-la depuis l’onglet Mises à jour gérées dans la console Elastic Beanstalk.
- Tous les autres environnements : mettez à jour votre environnement vers la version 6.11.12 de la plateforme ou une version ultérieure.
- Environnements sur Node.js 18 ou 20 : migrez vers une branche de plateforme Node.js prise en charge.
Pour vérifier, exécutez la commande node --version sur les instances de votre environnement.
AWS Elemental MediaLive
- AWS procède actuellement à la mise à jour d’un composant MediaLive géré par AWS qui inclut la bibliothèque concernée. Aucune action n’est requise de la part des clients.
Environnements Node.js gérés par le client
Si vous exécutez et gérez vos propres builds Node.js sur AWS, par exemple sur des instances Amazon EC2 ou dans vos propres conteneurs sur Amazon ECS ou Amazon EKS, vous êtes responsable de la mise à jour de ces environnements. Effectuez la mise à niveau vers Node.js 22.23.4, 24.22.1, 26.12.1 ou une version ultérieure. Étant donné que ce problème concerne également d’autres langages et applications qui décodent Brotli, vérifiez également si vos bibliothèques et applications incluent le décodage Brotli parmi leurs dépendances.
Mesures d’atténuation à l’aide d’AWS WAF
Si vous ne pouvez pas effectuer la mise à jour immédiatement, vous pouvez utiliser AWS WAF pour déployer une règle personnalisée qui bloque les requêtes entrantes utilisant l’encodage de contenu Brotli (l’en-tête Content-Encoding: br). Avant de procéder au déploiement, notez :
- AWS WAF inspecte uniquement les requêtes entrantes. Ce contrôle ne couvre pas les données Brotli provenant d’autres sources, telles que les réponses issues de services en amont.
- Le blocage des requêtes encodées en Brotli bloque tous les envois encodés en Brotli vers l’application, y compris le trafic normal.
- La règle est donnée à titre d’exemple et peut ne pas correspondre à toutes les requêtes encodées en Brotli.
- Étapes de déploiement recommandées :
1. Déployez la règle avec l’action Count.
2. Vérifiez les requêtes correspondantes dans les métriques Amazon CloudWatch et dans les requêtes échantillonnées.
3. Lorsque vous avez confirmé que la règle n’affecte pas le trafic normal, remplacez l’action Count par Block. Pour ce faire, remplacez "Count": {} with "Block": {}.
4. Définissez la priorité de la règle en fonction de l’ordre de vos règles existantes.
Exemple de règle AWS WAF :
|
{ "Name": "Node2Shell_BROTLI", "Priority": 2, "Statement": { "RegexMatchStatement": { "RegexString": "^\\s*br\\s*$", "FieldToMatch": { "SingleHeader": { "Name": "content-encoding" } }, "TextTransformations": [ { "Priority": 0, "Type": "LOWERCASE" } ] } }, "Action": { "Count": {} }, "RuleLabels": [ { "Name": "Node2Shell_Brotli" } ], "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "Node2Shell_BROTLI" } } |
Pour passer au blocage, remplacez "Count": {} with "Block": {}.
Les mises à jour des règles gérées AWS sont annoncées via les notifications SNS du groupe de règles gérées AWS WAF et le Guide du développeur AWS WAF.
Actions recommandées
- Migrez les charges de travail exécutées sur des versions de Node.js arrivées en fin de vie (notamment Node.js 18 et 20) vers une version prise en charge.
- Pour les environnements gérés par le client, effectuez la mise à niveau vers une version corrigée de Node.js dans le cadre de votre processus de gestion des correctifs.
- Vérifiez si votre code, vos dépendances ou vos couches intègrent leur propre bibliothèque Brotli, et mettez-les à jour dès que des correctifs sont disponibles. Si aucun correctif n’est encore disponible pour une bibliothèque ou une application concernée, désactivez le décodage Brotli jusqu’à ce qu’un correctif soit publié.
Références :
Veuillez envoyer un e-mail à aws-security@amazon.com si vous avez des questions ou des préoccupations relatives à la sécurité.