Skip to main content
WebguneWebgunebeta
Pricing
Toutes les failles

ÉlevéeCVE-2026-87018October 27, 2026

undici vulnérable à un déni de service via une renegotiation de certificat TLS 1.2 changeante

Conséquences sérieuses, souvent sous quelques conditions : à corriger rapidement.

Sévérité
Élevée7.5 / 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

undici provoque le crash du processus client lorsqu'un serveur TLS 1.2 négocie à nouveau après que la connexion a été établie et présente un certificat différent, approuvé par une CA, dont le nom d'hôte ne correspond pas à l'hôte demandé. Node.js réexécute la vérification du nom d'hôte sur le handshake renégocié et détruit la socket avec ERR_TLS_CERT_ALTNAME_INVALID. Le gestionnaire d'erreurs de socket établie d'undici affirmait que ce code d'erreur ne pouvait jamais se produire, si bien que l'erreur contrôlée par le pair est devenue une AssertionError non capturée qui termine le processus Node.js. Les chemins HTTP/1.1 et HTTP/2 sont tous deux affectés.

Un endpoint HTTPS malveillant ou compromis, accessible via undici ou l'API globale fetch(), peut provoquer le crash du client avec une seule négociation initiale par le serveur, mettant fin à toutes les requêtes en cours et aux tâches de fond dans le processus. Seul TLS 1.2 est affecté, car TLS 1.3 ne prend pas en charge la renégociation. L'exploitation ne nécessite pas de compromission de CA : l'attquant contrôle l'endpoint et peut présenter deux certificats valides ordinaires, le premier correspondant à l'URL demandée et le second intentionnellement ne correspondant pas.

Patches

Mettez à jour vers undici 6.29.1, 7.30.1 ou 8.12.2.

Workarounds

Restreignez les connexions sortantes à TLS 1.3, par exemple en définissant connect: { minVersion: 'TLSv1.3', maxVersion: 'TLSv1.3' } sur le client ou l'agent, de sorte que la renégociation ne puisse pas avoir lieu, lorsque les endpoints cibles prennent en charge TLS 1.3.

Composants touchés

ComposantVersions touchéesCorrigé en
undiciJavaScript (npm)>= 4.2.1, < 6.29.16.29.1
undiciJavaScript (npm)>= 7.0.0, < 7.30.17.30.1
undiciJavaScript (npm)>= 8.0.0, < 8.12.28.12.2

Vous utilisez une version touchée ? Passez à la version corrigée, puis redéployez.

undici vulnerable to Denial of Service via TLS 1.2 certificate-changing renegotiation

Impact

undici crashes the client process when a TLS 1.2 server renegotiates after the connection is established and presents a different, CA-trusted certificate whose hostname does not match the requested host. Node.js re-runs hostname verification on the renegotiated handshake and destroys the socket with ERR_TLS_CERT_ALTNAME_INVALID. undici's established socket error handler asserted that this error code could never occur, so the peer-controlled error became an uncaught AssertionError that terminates the Node.js process. Both the HTTP/1.1 and HTTP/2 paths are affected.

A malicious or compromised HTTPS endpoint reached through undici or the global fetch() can crash the client with a single server-initiated renegotiation, taking down all in-flight requests and background work in the process. Only TLS 1.2 is affected, because TLS 1.3 does not support renegotiation. Exploitation does not require a CA compromise: the attacker controls the endpoint and can present two ordinary valid certificates, the first matching the requested URL and the second intentionally not matching it.

Patches

Upgrade to undici 6.29.1, 7.30.1, or 8.12.2.

Workarounds

Restrict outbound connections to TLS 1.3, for example by setting connect: { minVersion: 'TLSv1.3', maxVersion: 'TLSv1.3' } on the client or agent, so that renegotiation cannot occur, when the target endpoints support TLS 1.3.

Catégorie : Uncaught Exception (CWE-248), Reachable Assertion (CWE-617)

Vecteur CVSS : CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

  • github.comhttps://github.com/nodejs/undici/security/advisories/GHSA-qrxm-fqhp-jwvm
  • nvd.nist.govhttps://nvd.nist.gov/vuln/detail/CVE-2026-87018
  • github.comhttps://github.com/nodejs/undici/commit/12cfd96c3f430897656e3edc1c5e02be8c1cd309
  • github.comhttps://github.com/nodejs/undici/commit/b40fbfc0651703cf9fa9f6ced68b679f28d8bb28
  • github.comhttps://github.com/nodejs/undici/commit/e257e9f8fb42eedd50727b9cf65e548c8925e4a8
  • cna.openjsf.orghttps://cna.openjsf.org/security-advisories.html
  • github.comhttps://github.com/nodejs/undici/releases/tag/v6.29.1
  • github.comhttps://github.com/nodejs/undici/releases/tag/v7.30.1
  • github.comhttps://github.com/nodejs/undici/releases/tag/v8.12.2
  • github.comhttps://github.com/advisories/GHSA-qrxm-fqhp-jwvm
WebguneWebgune

The all-in-one sovereign cloud, built and hosted in France.

DiscordDiscordGitHubGitHub
+33 (0)9 72 23 25 00support@webgune.cloud

Product

  • Features
  • Pricing
  • Comparison
  • Changelog
  • Status
  • Vulnerabilities (CVE)
  • Contact

Developers

  • Documentation
  • Frameworks
  • API Reference
  • Examples
  • CLI
  • Tools & VS Code

Legal

  • Terms of Service (CGS)
  • Privacy policy
  • Legal notices
  • Accessibility
  • GDPR
  • DPA
  • Acceptable Use Policy

© 2026 KX712. All rights reserved. Webgune is a KX712 service.

Payments:VisaMasterCardAmerican ExpressApple PayGoogle PaySEPABancontact