MoyenneCVE-2026-87029
undici vulnérable à un déni de service via une exception non gérée dans l'intercepteur decompress
Exploitable dans des cas précis ou avec un impact limité : à corriger à la prochaine mise à jour.
- Sévérité
- Moyenne5.9 / 10
- Publiée le
- October 27, 2026
- Mise à jour
- October 27, 2026
L'avis
Traduction automatique de l'avis officiel. En cas de doute, l'avis d'origine, plus bas, fait foi.
Impact
L'intercepteur decompress d'undici transmet les données de réponse décompressées au gestionnaire en aval à partir des rappels d'événements de flux zlib sans attraper les exceptions que ces rappels peuvent lever. Le moteur d'undici convertit une levée d'exception synchrone d'un gestionnaire en aval en une échec par demande, mais cette protection n'est pas en place lorsque la levée d'exception se produit de manière asynchrone depuis un rappel zlib. En conséquence, un gestionnaire en aval qui lève une exception par conception, par exemple l'intercepteur intégré dump qui lève une exception quand une réponse dépasse son maxSize, échappe comme une exception non gérée et termine le processus Node.js.
Un serveur HTTP malveillant ou compromis peut faire crasher tout client qui compose l'intercepteur decompress avec dump (ou un autre gestionnaire de réponse qui lève une exception), en renvoyant un corps compressé petit qui se décompresse au-delà de la limite configurée. Les octets compressés sur le fil sont minuscules, donc seule la taille décompressée compte. Si l'application garde le processus en vie avec un gestionnaire d'exceptions non gérées global, la demande affectée pend jusqu'au timeout du corps.
Correctifs
Mettez à jour vers undici 7.30.1 ou 8.12.2.
Contournements
Évitez de composer l'intercepteur decompress avec un gestionnaire de réponse qui lève une exception pendant le traitement de la réponse (comme dump avec un maxSize) jusqu'à la mise à jour.
Composants touchés
| Composant | Versions touchées | Corrigé en |
|---|---|---|
| undiciJavaScript (npm) | >= 7.15.0, < 7.30.1 | 7.30.1 |
| undiciJavaScript (npm) | >= 8.0.0, < 8.12.2 | 8.12.2 |
Vous utilisez une version touchée ? Passez à la version corrigée, puis redéployez.