Naar inhoud
PatchBriefing

Zoek in PatchBriefing

Typ minimaal twee tekens. Resultaten worden direct bijgewerkt.

Zoek op CVE’s, producten, packages en artikeltitels.

Niets gevonden. Kenmerken zoals CVE en GHSA zijn in beide talen doorzoekbaar.

Inschrijven

Gemiddeld · 5.4 Node.js & npm GHSA-rfgv-xxqx-mfg5 CVE-2026-19534 GHSA-w293-vg96-wgc3 CVE-2026-84961

Drie kwetsbaarheden in undici verholpen: DoS, TLS-bypass en cache-poisoning

In de undici HTTP/WebSocket-client voor Node.js zijn drie afzonderlijke kwetsbaarheden verholpen: een remote denial-of-service via de afhandeling van WebSocket-subprotocollen, een TLS-certificaatvalidatie-bypass in BalancedPool, en een cross-origin cache-poisoning probleem in interceptors. Het wordt aangeraden om te updaten naar de gepatchte versies.

Door AI gesynthetiseerd uit 3 bronnen · bijgewerkt 1 uur geleden

AI-samenvatting

De undici-bibliotheek, de HTTP/1.1-client die standaard in Node.js is ingebouwd en ook veel als los npm-pakket wordt gebruikt, heeft drie afzonderlijke beveiligingsadviezen gekregen. Elk advies betreft een ander onderdeel van de bibliotheek — de WebSocket-client, het BalancedPool-mechanisme voor connection pooling, en de cache- en deduplicatie-interceptors — en elk heeft een eigen fix. Geen van de drie wordt gemeld als actief misbruikt of met publiek beschikbare exploitcode. Deze briefing behandelt alle drie gezamenlijk omdat ze op dezelfde dag zijn gepubliceerd en hetzelfde pakket betreffen.

Drie afzonderlijke problemen in undici

De GitHub Advisory Database publiceerde op dezelfde dag drie adviezen over undici. CVE-2026-19534 (GHSA-rfgv-xxqx-mfg5) beschrijft een denial-of-service in de WebSocket-client: er wordt een niet-afgevangen exception gegooid wanneer een server reageert met een WebSocket-subprotocol dat de client nooit heeft aangevraagd, waardoor het Node.js-proces crasht. CVE-2026-84961 (GHSA-w293-vg96-wgc3) beschrijft een TLS-certificaatvalidatie-bypass die specifiek BalancedPool treft, waarbij een aangepaste checkServerIdentity-callback of connector-functie stilzwijgend wordt weggelaten voordat deze de TLS-laag bereikt. CVE-2026-85152 (GHSA-vp8m-p9jh-q5pm) beschrijft een cross-origin cache-poisoning probleem dat de cache()- en deduplicate()-interceptors treft wanneer hun state wordt gedeeld tussen meerdere origins.

Technische oorzaken

De WebSocket-DoS (CVE-2026-19534) ontstaat doordat de code voor de opening handshake een TypeError gooit binnen een queueMicrotask-callback zonder omliggende try/catch, waardoor de exception niet wordt afgevangen en het proces wordt beëindigd; volgens RFC 6455 hoort een ongevraagd subprotocol de verbinding te laten falen, niet te laten crashen. De TLS-bypass (CVE-2026-84961) komt doordat BalancedPool constructor-opties doorstuurt via een op JSON gebaseerde deep clone (JSON.parse(JSON.stringify(...))) voordat deze naar elke onderliggende Pool worden doorgegeven; omdat JSON geen functies kan weergeven, wordt een meegegeven checkServerIdentity-callback of aangepaste connector stilzwijgend weggelaten, waardoor Node's standaard certificaatcontroles worden toegepast in plaats van de strengere logica van de aanroeper. Client, Pool, Agent en RoundRobinPool destructureren de connect/tls-opties vóór de clone en zijn niet getroffen. Het cache-poisoning probleem (CVE-2026-85152) ontstaat doordat cache- en deduplicatiesleutels worden opgebouwd zonder de werkelijke bestemmingsorigin wanneer een dispatcher geen eenduidige autoritatieve origin heeft of een request zelf een origin meegeeft; als een cache store of interceptor-instantie wordt gedeeld tussen origins, kunnen requests naar verschillende origins onder dezelfde sleutel terechtkomen. Agent is hier niet door getroffen omdat de dispatch-opties daar de request-origin bevatten.

Waarom dit belangrijk is

De WebSocket-DoS (CVSS 7,5) kan op afstand en zonder authenticatie worden getriggerd door elke aanvaller-gecontroleerde of gecompromitteerde WebSocket-server, of door een machine-in-the-middle op een plaintext ws://-verbinding, en treft het standaardgebruik van new WebSocket(url) zonder dat er een workaround bestaat anders dan updaten. De TLS-bypass in BalancedPool (CVSS 7,4) kan ervoor zorgen dat een certificaat dat een aangepaste checkServerIdentity juist zou moeten afwijzen, toch stilzwijgend wordt geaccepteerd, waardoor de beoogde TLS-verificatie wordt ondermijnd voor applicaties die BalancedPool met aangepaste connect/tls-opties gebruiken. Het cache-poisoning probleem (CVSS 7,4) stelt een aanvaller die de responses van één origin controleert in staat om die response te laten retourneren voor requests naar een andere, vertrouwde origin, inclusief scenario's zoals JWKS cache-poisoning waarbij een token ondertekend met een aanvaller-sleutel geaccepteerd zou kunnen worden alsof het van een vertrouwde issuer komt.

Wie wordt getroffen

Alle applicaties die de standaard WebSocket-client van undici gebruiken (new WebSocket(url)) zijn mogelijk getroffen door het DoS-probleem. Alleen applicaties die specifiek BalancedPool gebruiken met een connect- of tls-optie die een functie bevat, zoals een aangepaste checkServerIdentity of connector, worden getroffen door de TLS-bypass. Alleen applicaties die interceptors.cache()- of interceptors.deduplicate()-state delen tussen meer dan één origin zijn getroffen door het cache-poisoning probleem; een gewone Agent wordt door geen van beide laatste problemen getroffen.

Getroffen versies

WebSocket-DoS (CVE-2026-19534): undici-versies vanaf 6.7.0 tot (maar niet met) 6.28.1, vanaf 7.0.0 tot (maar niet met) 7.29.1, en vanaf 8.0.0 tot (maar niet met) 8.10.2. TLS-bypass (CVE-2026-84961): undici-versies vanaf 7.24.1 tot (maar niet met) 7.29.1, en vanaf 8.0.0 tot (maar niet met) 8.10.2. Cache-poisoning (CVE-2026-85152): undici-versies vanaf 8.10.0 tot (maar niet met) 8.10.2, specifiek de versies 8.10.0 en 8.10.1.

Fixes en mitigaties

Voor de WebSocket-DoS: update naar undici 6.28.1, 7.29.1 of 8.10.2; er is geen andere workaround dan updaten. Voor de TLS-bypass in BalancedPool: update naar 7.29.1 of 8.10.2, waarin de connect- en tls-opties buiten de JSON-clone worden bewaard; gebruik tot die tijd Client, Pool of Agent in plaats van BalancedPool voor verbindingen die afhankelijk zijn van een aangepaste checkServerIdentity of connector. Voor het cache-poisoning probleem: update naar 8.10.2; gebruik tot die tijd een aparte cache store en een aparte interceptor-instantie per origin in plaats van deze te delen tussen origins.

Aanbevolen actie

Websitebeheerders en ontwikkelaars die undici gebruiken, wordt aangeraden zo snel mogelijk te updaten naar de gepatchte release in hun major-versielijn (6.28.1, 7.29.1 of 8.10.2, afhankelijk van welke branch in gebruik is). Controleer elk gebruik van BalancedPool met aangepaste TLS-verificatie en elk gedeeld gebruik van cache- of deduplicatie-interceptor-state over origins heen, en pas de beschreven workarounds toe als een directe update niet mogelijk is.

PatchBriefing-score

5.4 / 10 · Gemiddeld

Officiële CVSS: 7.5

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

Waarom deze score

Elk advies heeft een eigen CVSS-score en PatchBriefing-score. De WebSocket-DoS heeft een CVSS-basisscore van 7,5 en een PatchBriefing-score van 5,4, wat weerspiegelt dat deze op afstand en zonder authenticatie of gebruikersinteractie kan worden getriggerd en een veelgebruikt pakket treft, maar niet bekend is als actief misbruikt en geen publieke exploitcode of EPSS-gegevens heeft. De TLS-bypass in BalancedPool en het cache-poisoning probleem hebben elk een CVSS-basisscore van 7,4 en een PatchBriefing-score van 5,3, om vergelijkbare redenen: beide vereisen geen authenticatie of gebruikersinteractie en treffen een zeer populair pakket, maar zijn niet bekend als actief misbruikt, hebben geen publieke exploitcode en kennen lage EPSS-waarschijnlijkheidsscores in de onderliggende claims. Geen van de drie staat vermeld als bekend misbruikt of geassocieerd met ransomware-activiteit.

Getroffen versies

undici >= 8.0.0, < 8.10.2
kwetsbaar
≥ 6.28.1
gepatcht
≥ 7.29.1
gepatcht
≥ 8.10.2
gepatcht
undici >= 8.0.0, < 8.10.2
kwetsbaar
≥ 7.29.1
gepatcht
≥ 8.10.2
gepatcht
undici >= 8.10.0, < 8.10.2
kwetsbaar
≥ 8.10.2
gepatcht

Gemelde oplossingen

Voor de WebSocket-DoS: update naar undici 6.28.1, 7.29.1 of 8.10.2; er is geen andere workaround dan updaten. Voor de TLS-bypass in BalancedPool: update naar 7.29.1 of 8.10.2, waarin de connect- en tls-opties buiten de JSON-clone worden bewaard; gebruik tot die tijd Client, Pool of Agent in plaats van BalancedPool voor verbindingen die afhankelijk zijn van een aangepaste checkServerIdentity of connector. Voor het cache-poisoning probleem: update naar 8.10.2; gebruik tot die tijd een aparte cache store en een aparte interceptor-instantie per origin in plaats van deze te delen tussen origins.

Hoe dit rapport is gemaakt

3 bronrecords zijn opgehaald, gekoppeld en gebruikt om het rapport hierboven op te stellen.

  • GitHub Advisory Database database
  • GitHub Advisory Database database
  • GitHub Advisory Database database
Eén rapport
Drie kwetsbaarheden in undici verholpen: DoS, TLS-bypass en cache-poisoning
1 artikel · 3 bronnen geciteerd
Revisiegeschiedenis
  1. Gepubliceerd
  2. Gegenereerd
De Ochtendbriefing

Relevante veranderingen voor de stacks die je volgt.

Kies je stacks, onderwerpen en eventueel WordPress-plugins. Om 07:00 CEST worden passende meldingen en releases uit de rapportageperiode in één e-mail gegroepeerd.

✓ Kies stacks en onderwerpen✓ Pas voorkeuren altijd aan✓ Eén gebundelde e-mail