Skip to main content
WebguneWebgunebeta
Pricing
Toutes les failles

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

undici vulnérable à la contamination du cache et à la divulgation inter-utilisateur via des redirections cross-origin

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

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

Lorsqu'un Agent sans origine compose les intercepteurs de redirection et de cache comme compose(redirect(), cache()) avec un cache partagé (type: 'shared'), le cache construit sa clé à partir de l'URL de la demande initiale avant que le gestionnaire de redirection ne change l'origine. La réponse produite après une redirection est alors stockée sous la clé initiale, même si la redirection a changé d'origine.

Un attaquant qui contrôle la cible d'une redirection depuis une URL de confiance peut avoir sa réponse mise en cache sous cette URL de confiance. Un appelant ultérieur demandant cette URL de confiance reçoit le corps de l'attaquant depuis le cache partagé sans qu'aucune origine ne soit contactée, permettant une contamination persistante du cache. La même confusion de clé div également des données privées : lorsque une demande authentifiée renvoie une redirection private, no-store vers une ressource spécifique à l'utilisateur, la réponse finale est stockée sous l'URL initiale et peut être servie à un appelant ultérieur non authentifié.

L'intercepteur de cache a été introduit dans undici 7.0.0, et toutes les versions 7.x et 8.x antérieures aux versions corrigées sont affectées. Les applications sont uniquement affectées lorsqu'elles utilisent un Agent sans origine, un MemoryCacheStore ou SqliteCacheStore partagé, et la composition compose(redirect(), cache()). Les dispatchers Client et Pool liés à une origine, ainsi que la composition inverse compose(cache(), redirect()), ne sont pas affectés.

Correctifs

Mettre à jour vers 7.30.1 ou 8.12.2. Avant de stocker une réponse, undici vérifie maintenant que l'origine qui a produit la réponse correspond encore à la clé du cache, et préserve la politique de contrôle de cache de chaque saut de redirection, de sorte que les réponses de redirection cross-origin et les réponses derrière un saut no-store ou private ne sont plus mises en cache sous la clé initiale.

Contournements

Composer les intercepteurs comme compose(cache(), redirect()), utiliser des dispatchers et des magasins de cache par origine, ou désactiver la mise en cache partagée pour les demandes capables de rediriger.

Composants touchés

ComposantVersions touchéesCorrigé en
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 cache poisoning and cross-user disclosure via cross-origin redirects

Impact

When an originless Agent composes the redirect and cache interceptors as compose(redirect(), cache()) with a shared cache (type: 'shared'), the cache builds its key from the original request URL before the redirect handler changes the origin. The response produced after a redirect is then stored under the original key, even when the redirect crossed to a different origin.

An attacker who controls the target of a redirect from a trusted URL can have their response cached under that trusted URL. A later caller requesting the trusted URL receives the attacker's body from the shared cache without either origin being contacted, allowing persistent cache poisoning. The same key confusion also discloses private data: when an authenticated request returns a private, no-store redirect to a user-specific resource, the final response is stored under the original URL and can be served to a later unauthenticated caller.

The cache interceptor was introduced in undici 7.0.0, and all 7.x and 8.x releases before the patched versions are affected. Applications are affected only when an originless Agent, a shared MemoryCacheStore or SqliteCacheStore, and the composition compose(redirect(), cache()) are all used. Origin-bound Client and Pool dispatchers, and the reverse composition compose(cache(), redirect()), are not affected.

Patches

Upgrade to 7.30.1 or 8.12.2. Before storing a response, undici now verifies that the origin that produced it still matches the cache key, and preserves each redirect hop's cache-control policy, so cross-origin redirect responses and responses behind a no-store or private hop are no longer cached under the original key.

Workarounds

Compose the interceptors as compose(cache(), redirect()), use per-origin dispatchers and cache stores, or disable shared caching on redirect-capable requests.

Catégorie : Origin Validation Error (CWE-346), Use of Cache Containing Sensitive Information (CWE-524)

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

  • github.comhttps://github.com/nodejs/undici/security/advisories/GHSA-4w7w-5xrc-9h26
  • nvd.nist.govhttps://nvd.nist.gov/vuln/detail/CVE-2026-109829
  • github.comhttps://github.com/nodejs/undici/commit/26c2bfb3def0b67241ce878e80657ed5d6c3efa8
  • github.comhttps://github.com/nodejs/undici/commit/b20b82ad80a405a12b6ce1f341bcd418de390aa0
  • cna.openjsf.orghttps://cna.openjsf.org/security-advisories.html
  • 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-4w7w-5xrc-9h26
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