Skip to content

@carbon/ibmdotcom-utilities-2.48.0.tgz: 10 vulnerabilities (highest severity is: 7.5) - autoclosed #12499

Description

@ibm-mend-app
Vulnerable Library - @carbon/ibmdotcom-utilities-2.48.0.tgz

Path to dependency file: /package.json

Path to vulnerable library: /.yarn/cache/dompurify-npm-3.3.1-5bbe58c5ff-f71cca489e.zip

Found in HEAD commit: 6ae06cede98c3bc20fa0626e8f455e62830c20b8

Vulnerabilities

Vulnerability Severity CVSS Dependency Type Fixed in (@carbon/ibmdotcom-utilities version) Remediation Possible**
CVE-2026-2229 High 7.5 undici-7.21.0.tgz Transitive N/A*
CVE-2026-1528 High 7.5 undici-7.21.0.tgz Transitive N/A*
CVE-2026-1526 High 7.5 undici-7.21.0.tgz Transitive N/A*
CVE-2026-41238 Medium 6.9 dompurify-3.3.1.tgz Transitive N/A*
CVE-2026-41239 Medium 6.8 dompurify-3.3.1.tgz Transitive N/A*
CVE-2026-41240 Medium 6.5 dompurify-3.3.1.tgz Transitive N/A*
CVE-2026-1525 Medium 6.5 undici-7.21.0.tgz Transitive N/A*
CVE-2026-0540 Medium 6.1 dompurify-3.3.1.tgz Transitive N/A*
CVE-2026-2581 Medium 5.9 undici-7.21.0.tgz Transitive N/A*
CVE-2026-1527 Medium 4.6 undici-7.21.0.tgz Transitive N/A*

*For some transitive vulnerabilities, there is no version of direct dependency with a fix. Check the "Details" section below to see if there is a version of transitive dependency where vulnerability is fixed.

**In some cases, Remediation PR cannot be created automatically for a vulnerability despite the availability of remediation

Details

CVE-2026-2229

Vulnerable Library - undici-7.21.0.tgz

An HTTP/1.1 client, written from scratch for Node.js

Library home page: https://registry.npmjs.org/undici/-/undici-7.21.0.tgz

Path to dependency file: /package.json

Path to vulnerable library: /.yarn/cache/undici-npm-7.21.0-babfc213f0-2025ba33bd.zip

Dependency Hierarchy:

  • @carbon/ibmdotcom-utilities-2.48.0.tgz (Root Library)
    • isomorphic-dompurify-2.36.0.tgz
      • jsdom-28.0.0.tgz
        • undici-7.21.0.tgz (Vulnerable Library)

Found in HEAD commit: 6ae06cede98c3bc20fa0626e8f455e62830c20b8

Found in base branch: main

Vulnerability Details

ImpactThe undici WebSocket client is vulnerable to a denial-of-service attack due to improper validation of the server_max_window_bits parameter in the permessage-deflate extension. When a WebSocket client connects to a server, it automatically advertises support for permessage-deflate compression. A malicious server can respond with an out-of-range server_max_window_bits value (outside zlib's valid range of 8-15). When the server subsequently sends a compressed frame, the client attempts to create a zlib InflateRaw instance with the invalid windowBits value, causing a synchronous RangeError exception that is not caught, resulting in immediate process termination.
The vulnerability exists because:

  • The isValidClientWindowBits() function only validates that the value contains ASCII digits, not that it falls within the valid range 8-15
  • The createInflateRaw() call is not wrapped in a try-catch block
  • The resulting exception propagates up through the call stack and crashes the Node.js process

Publish Date: 2026-03-12

URL: CVE-2026-2229

CVSS 3 Score Details (7.5)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: Low
    • Privileges Required: None
    • User Interaction: None
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: None
    • Integrity Impact: None
    • Availability Impact: High

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-v9p9-hfj2-hcw8

Release Date: 2026-03-12

Fix Resolution: undici - 6.24.0,undici - 7.24.0

CVE-2026-1528

Vulnerable Library - undici-7.21.0.tgz

An HTTP/1.1 client, written from scratch for Node.js

Library home page: https://registry.npmjs.org/undici/-/undici-7.21.0.tgz

Path to dependency file: /package.json

Path to vulnerable library: /.yarn/cache/undici-npm-7.21.0-babfc213f0-2025ba33bd.zip

Dependency Hierarchy:

  • @carbon/ibmdotcom-utilities-2.48.0.tgz (Root Library)
    • isomorphic-dompurify-2.36.0.tgz
      • jsdom-28.0.0.tgz
        • undici-7.21.0.tgz (Vulnerable Library)

Found in HEAD commit: 6ae06cede98c3bc20fa0626e8f455e62830c20b8

Found in base branch: main

Vulnerability Details

ImpactA server can reply with a WebSocket frame using the 64-bit length form and an extremely large length. undici's ByteParser overflows internal math, ends up in an invalid state, and throws a fatal TypeError that terminates the process.
Patches
Patched in the undici version v7.24.0 and v6.24.0. Users should upgrade to this version or later.

Publish Date: 2026-03-12

URL: CVE-2026-1528

CVSS 3 Score Details (7.5)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: Low
    • Privileges Required: None
    • User Interaction: None
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: None
    • Integrity Impact: None
    • Availability Impact: High

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-f269-vfmq-vjvj

Release Date: 2026-03-12

Fix Resolution: undici - 7.24.0,undici - 6.24.0

CVE-2026-1526

Vulnerable Library - undici-7.21.0.tgz

An HTTP/1.1 client, written from scratch for Node.js

Library home page: https://registry.npmjs.org/undici/-/undici-7.21.0.tgz

Path to dependency file: /package.json

Path to vulnerable library: /.yarn/cache/undici-npm-7.21.0-babfc213f0-2025ba33bd.zip

Dependency Hierarchy:

  • @carbon/ibmdotcom-utilities-2.48.0.tgz (Root Library)
    • isomorphic-dompurify-2.36.0.tgz
      • jsdom-28.0.0.tgz
        • undici-7.21.0.tgz (Vulnerable Library)

Found in HEAD commit: 6ae06cede98c3bc20fa0626e8f455e62830c20b8

Found in base branch: main

Vulnerability Details

The undici WebSocket client is vulnerable to a denial-of-service attack via unbounded memory consumption during permessage-deflate decompression. When a WebSocket connection negotiates the permessage-deflate extension, the client decompresses incoming compressed frames without enforcing any limit on the decompressed data size. A malicious WebSocket server can send a small compressed frame (a "decompression bomb") that expands to an extremely large size in memory, causing the Node.js process to exhaust available memory and crash or become unresponsive.
The vulnerability exists in the PerMessageDeflate.decompress() method, which accumulates all decompressed chunks in memory and concatenates them into a single Buffer without checking whether the total size exceeds a safe threshold.

Publish Date: 2026-03-12

URL: CVE-2026-1526

CVSS 3 Score Details (7.5)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: Low
    • Privileges Required: None
    • User Interaction: None
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: None
    • Integrity Impact: None
    • Availability Impact: High

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-vrm6-8vpv-qv8q

Release Date: 2026-03-12

Fix Resolution: undici - 7.24.0,undici - 6.24.0

CVE-2026-41238

Vulnerable Library - dompurify-3.3.1.tgz

DOMPurify is a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. It's written in JavaScript and works in all modern browsers (Safari, Opera (15+), Internet Explorer (10+), Firefox and Chrome - as well as almost anything else usin

Library home page: https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz

Path to dependency file: /package.json

Path to vulnerable library: /.yarn/cache/dompurify-npm-3.3.1-5bbe58c5ff-f71cca489e.zip

Dependency Hierarchy:

  • @carbon/ibmdotcom-utilities-2.48.0.tgz (Root Library)
    • isomorphic-dompurify-2.36.0.tgz
      • dompurify-3.3.1.tgz (Vulnerable Library)

Found in HEAD commit: 6ae06cede98c3bc20fa0626e8f455e62830c20b8

Found in base branch: main

Vulnerability Details

Summary DOMPurify versions 3.0.1 through 3.3.3 (latest) are vulnerable to a prototype pollution-based XSS bypass. When an application uses "DOMPurify.sanitize()" with the default configuration (no "CUSTOM_ELEMENT_HANDLING" option), a prior prototype pollution gadget can inject permissive "tagNameCheck" and "attributeNameCheck" regex values into "Object.prototype", causing DOMPurify to allow arbitrary custom elements with arbitrary attributes — including event handlers — through sanitization. Affected Versions - 3.0.1 through 3.3.3 (current latest) — all affected - 3.0.0 and all 2.x versions — NOT affected (used "Object.create(null)" for initialization, no "|| {}" reassignment) - The vulnerable "|| {}" reassignment was introduced in the 3.0.0→3.0.1 refactor - This is distinct from GHSA-cj63-jhhr-wcxv (USE_PROFILES Array.prototype pollution, fixed in 3.3.2) - This is distinct from CVE-2024-45801 / GHSA-mmhx-hmjr-r674 (__depth prototype pollution, fixed in 3.1.3) Root Cause In "purify.js" at line 590, during config parsing: CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {}; When no "CUSTOM_ELEMENT_HANDLING" is specified in the config (the default usage pattern), "cfg.CUSTOM_ELEMENT_HANDLING" is "undefined", and the fallback "{}" is used. This plain object inherits from "Object.prototype". Lines 591-598 then check "cfg.CUSTOM_ELEMENT_HANDLING" (the original config property) — which is "undefined" — so the conditional blocks that would set "tagNameCheck" and "attributeNameCheck" from the config are never entered. As a result, "CUSTOM_ELEMENT_HANDLING.tagNameCheck" and "CUSTOM_ELEMENT_HANDLING.attributeNameCheck" resolve via the prototype chain. If an attacker has polluted "Object.prototype.tagNameCheck" and "Object.prototype.attributeNameCheck" with permissive values (e.g., "/.*/"), these polluted values flow into DOMPurify's custom element validation at lines 973-977 and attribute validation, causing all custom elements and all attributes to be allowed. Impact - Attack type: XSS bypass via prototype pollution chain - Prerequisites: Attacker must have a prototype pollution primitive in the same execution context (e.g., vulnerable version of lodash, jQuery.extend, query-string parser, deep merge utility, or any other PP gadget) - Config required: Default. No special DOMPurify configuration needed. The standard "DOMPurify.sanitize(userInput)" call is affected. - Payload: Any HTML custom element (name containing a hyphen) with event handler attributes survives sanitization.
Mend Note: The description of this vulnerability differs from MITRE.

Publish Date: 2026-04-23

URL: CVE-2026-41238

CVSS 3 Score Details (6.9)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: High
    • Privileges Required: None
    • User Interaction: Required
    • Scope: Changed
  • Impact Metrics:
    • Confidentiality Impact: High
    • Integrity Impact: Low
    • Availability Impact: None

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-v9jr-rg53-9pgp

Release Date: 2026-04-22

Fix Resolution: dompurify - 3.4.0,dompurify - 3.4.0

CVE-2026-41239

Vulnerable Library - dompurify-3.3.1.tgz

DOMPurify is a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. It's written in JavaScript and works in all modern browsers (Safari, Opera (15+), Internet Explorer (10+), Firefox and Chrome - as well as almost anything else usin

Library home page: https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz

Path to dependency file: /package.json

Path to vulnerable library: /.yarn/cache/dompurify-npm-3.3.1-5bbe58c5ff-f71cca489e.zip

Dependency Hierarchy:

  • @carbon/ibmdotcom-utilities-2.48.0.tgz (Root Library)
    • isomorphic-dompurify-2.36.0.tgz
      • dompurify-3.3.1.tgz (Vulnerable Library)

Found in HEAD commit: 6ae06cede98c3bc20fa0626e8f455e62830c20b8

Found in base branch: main

Vulnerability Details

Summary | Field | Value | |:------|:------| | Severity | Medium | | Affected | DOMPurify "main" at ""883ac15"" (https://github.com/cure53/DOMPurify/tree/883ac15d47f907cb1a3b5a152fe90c4d8c10f9e6), introduced in v1.0.10 (""7fc196db"" (cure53/DOMPurify@7fc196d)) | "SAFE_FOR_TEMPLATES" strips "{{...}}" expressions from untrusted HTML. This works in string mode but not with "RETURN_DOM" or "RETURN_DOM_FRAGMENT", allowing XSS via template-evaluating frameworks like Vue 2. Technical Details DOMPurify strips template expressions in two passes: 1. Per-node — each text node is checked during the tree walk (""purify.ts:1179-1191"" (https://github.com/cure53/DOMPurify/blob/883ac15d47f907cb1a3b5a152fe90c4d8c10f9e6/src/purify.ts#L1179-L1191)): // pass #1: runs on every text node during tree walk if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) { content = currentNode.textContent; content = content.replace(MUSTACHE_EXPR, ' '); // {{...}} -> ' ' content = content.replace(ERB_EXPR, ' '); // <%...%> -> ' ' content = content.replace(TMPLIT_EXPR, ' '); // ${... -> ' ' currentNode.textContent = content; } 2. Final string scrub — after serialization, the full HTML string is scrubbed again (""purify.ts:1679-1683"" (https://github.com/cure53/DOMPurify/blob/883ac15d47f907cb1a3b5a152fe90c4d8c10f9e6/src/purify.ts#L1679-L1683)). This is the safety net that catches expressions that only form after the DOM settles. The "RETURN_DOM" path returns before pass #2 ever runs (""purify.ts:1637-1661"" (https://github.com/cure53/DOMPurify/blob/883ac15d47f907cb1a3b5a152fe90c4d8c10f9e6/src/purify.ts#L1637-L1661)): // purify.ts (simplified) if (RETURN_DOM) { // ... build returnNode ... return returnNode; // <-- exits here, pass #2 never runs } // pass #2: only reached by string-mode callers if (SAFE_FOR_TEMPLATES) { serializedHTML = serializedHTML.replace(MUSTACHE_EXPR, ' '); } return serializedHTML; The payload "{{constructor.constructor('alert(1)')()}}" exploits this: 3. Parser creates: "TEXT("{")" → "" → "TEXT("{payload}")" → "" → "TEXT("}")" — no single node contains "{{", so pass #1 misses it 4. "" is not allowed, so DOMPurify removes it but keeps surrounding text 5. The three text nodes are now adjacent — ".outerHTML" reads them as "{{payload}}", which Vue 2 compiles and executes
Mend Note: The description of this vulnerability differs from MITRE.

Publish Date: 2026-04-23

URL: CVE-2026-41239

CVSS 3 Score Details (6.8)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: High
    • Privileges Required: None
    • User Interaction: Required
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: High
    • Integrity Impact: High
    • Availability Impact: None

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-crv5-9vww-q3g8

Release Date: 2026-04-22

Fix Resolution: dompurify - 3.4.0,dompurify - 3.4.0

CVE-2026-41240

Vulnerable Library - dompurify-3.3.1.tgz

DOMPurify is a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. It's written in JavaScript and works in all modern browsers (Safari, Opera (15+), Internet Explorer (10+), Firefox and Chrome - as well as almost anything else usin

Library home page: https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz

Path to dependency file: /package.json

Path to vulnerable library: /.yarn/cache/dompurify-npm-3.3.1-5bbe58c5ff-f71cca489e.zip

Dependency Hierarchy:

  • @carbon/ibmdotcom-utilities-2.48.0.tgz (Root Library)
    • isomorphic-dompurify-2.36.0.tgz
      • dompurify-3.3.1.tgz (Vulnerable Library)

Found in HEAD commit: 6ae06cede98c3bc20fa0626e8f455e62830c20b8

Found in base branch: main

Vulnerability Details

There is an inconsistency between FORBID_TAGS and FORBID_ATTR handling when function-based ADD_TAGS is used. Commit "c361baa" (cure53/DOMPurify@c361baa) added an early exit for FORBID_ATTR at line 1214: /* FORBID_ATTR must always win, even if ADD_ATTR predicate would allow it / if (FORBID_ATTR[lcName]) { return false; } The same fix was not applied to FORBID_TAGS. At line 1118-1123, when EXTRA_ELEMENT_HANDLING.tagCheck returns true, the short-circuit evaluation skips the FORBID_TAGS check entirely: if ( !( EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName) // true -> short-circuits ) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) // never evaluated ) { This allows forbidden elements to survive sanitization with their attributes intact.
Mend Note: The description of this vulnerability differs from MITRE.

Publish Date: 2026-04-23

URL: CVE-2026-41240

CVSS 3 Score Details (6.5)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: Low
    • Privileges Required: None
    • User Interaction: Required
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: None
    • Integrity Impact: High
    • Availability Impact: None

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-h7mw-gpvr-xq4m

Release Date: 2026-04-23

Fix Resolution: dompurify - 3.4.0

CVE-2026-1525

Vulnerable Library - undici-7.21.0.tgz

An HTTP/1.1 client, written from scratch for Node.js

Library home page: https://registry.npmjs.org/undici/-/undici-7.21.0.tgz

Path to dependency file: /package.json

Path to vulnerable library: /.yarn/cache/undici-npm-7.21.0-babfc213f0-2025ba33bd.zip

Dependency Hierarchy:

  • @carbon/ibmdotcom-utilities-2.48.0.tgz (Root Library)
    • isomorphic-dompurify-2.36.0.tgz
      • jsdom-28.0.0.tgz
        • undici-7.21.0.tgz (Vulnerable Library)

Found in HEAD commit: 6ae06cede98c3bc20fa0626e8f455e62830c20b8

Found in base branch: main

Vulnerability Details

Undici allows duplicate HTTP Content-Length headers when they are provided in an array with case-variant names (e.g., Content-Length and content-length). This produces malformed HTTP/1.1 requests with multiple conflicting Content-Length values on the wire.
Who is impacted:

  • Applications using undici.request(), undici.Client, or similar low-level APIs with headers passed as flat arrays
  • Applications that accept user-controlled header names without case-normalization
    Potential consequences:
  • Denial of Service: Strict HTTP parsers (proxies, servers) will reject requests with duplicate Content-Length headers (400 Bad Request)
  • HTTP Request Smuggling: In deployments where an intermediary and backend interpret duplicate headers inconsistently (e.g., one uses the first value, the other uses the last), this can enable request smuggling attacks leading to ACL bypass, cache poisoning, or credential hijacking

Publish Date: 2026-03-12

URL: CVE-2026-1525

CVSS 3 Score Details (6.5)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: Low
    • Privileges Required: None
    • User Interaction: None
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: None
    • Integrity Impact: Low
    • Availability Impact: Low

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-2mjp-6q6p-2qxm

Release Date: 2026-03-12

Fix Resolution: undici - 6.24.0,undici - 7.24.0

CVE-2026-0540

Vulnerable Library - dompurify-3.3.1.tgz

DOMPurify is a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. It's written in JavaScript and works in all modern browsers (Safari, Opera (15+), Internet Explorer (10+), Firefox and Chrome - as well as almost anything else usin

Library home page: https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz

Path to dependency file: /package.json

Path to vulnerable library: /.yarn/cache/dompurify-npm-3.3.1-5bbe58c5ff-f71cca489e.zip

Dependency Hierarchy:

  • @carbon/ibmdotcom-utilities-2.48.0.tgz (Root Library)
    • isomorphic-dompurify-2.36.0.tgz
      • dompurify-3.3.1.tgz (Vulnerable Library)

Found in HEAD commit: 6ae06cede98c3bc20fa0626e8f455e62830c20b8

Found in base branch: main

Vulnerability Details

DOMPurify 3.1.3 through 3.3.1 and 2.5.3 through 2.5.8, fixed in commit 729097f, contain a cross-site scripting vulnerability that allows attackers to bypass attribute sanitization by exploiting five missing rawtext elements (noscript, xmp, noembed, noframes, iframe) in the SAFE_FOR_XML regex. Attackers can include payloads like in attribute values to execute JavaScript when sanitized output is placed inside these unprotected rawtext contexts.
Mend Note: The description of this vulnerability differs from MITRE.

Publish Date: 2026-03-03

URL: CVE-2026-0540

CVSS 3 Score Details (6.1)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: Low
    • Privileges Required: None
    • User Interaction: Required
    • Scope: Changed
  • Impact Metrics:
    • Confidentiality Impact: Low
    • Integrity Impact: Low
    • Availability Impact: None

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-v2wj-7wpq-c8vv

Release Date: 2026-03-03

Fix Resolution: dompurify - 3.3.2,dompurify - 2.5.9

CVE-2026-2581

Vulnerable Library - undici-7.21.0.tgz

An HTTP/1.1 client, written from scratch for Node.js

Library home page: https://registry.npmjs.org/undici/-/undici-7.21.0.tgz

Path to dependency file: /package.json

Path to vulnerable library: /.yarn/cache/undici-npm-7.21.0-babfc213f0-2025ba33bd.zip

Dependency Hierarchy:

  • @carbon/ibmdotcom-utilities-2.48.0.tgz (Root Library)
    • isomorphic-dompurify-2.36.0.tgz
      • jsdom-28.0.0.tgz
        • undici-7.21.0.tgz (Vulnerable Library)

Found in HEAD commit: 6ae06cede98c3bc20fa0626e8f455e62830c20b8

Found in base branch: main

Vulnerability Details

This is an uncontrolled resource consumption vulnerability (CWE-400) that can lead to Denial of Service (DoS).
In vulnerable Undici versions, when interceptors.deduplicate() is enabled, response data for deduplicated requests could be accumulated in memory for downstream handlers. An attacker-controlled or untrusted upstream endpoint can exploit this with large/chunked responses and concurrent identical requests, causing high memory usage and potential OOM process termination.
Impacted users are applications that use Undici’s deduplication interceptor against endpoints that may produce large or long-lived response bodies.
PatchesThe issue has been patched by changing deduplication behavior to stream response chunks to downstream handlers as they arrive (instead of full-body accumulation), and by preventing late deduplication when body streaming has already started.
Users should upgrade to the first official Undici (and Node.js, where applicable) releases that include this patch.

Publish Date: 2026-03-12

URL: CVE-2026-2581

CVSS 3 Score Details (5.9)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: High
    • Privileges Required: None
    • User Interaction: None
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: None
    • Integrity Impact: None
    • Availability Impact: High

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-phc3-fgpg-7m6h

Release Date: 2026-03-12

Fix Resolution: undici - 7.24.0

CVE-2026-1527

Vulnerable Library - undici-7.21.0.tgz

An HTTP/1.1 client, written from scratch for Node.js

Library home page: https://registry.npmjs.org/undici/-/undici-7.21.0.tgz

Path to dependency file: /package.json

Path to vulnerable library: /.yarn/cache/undici-npm-7.21.0-babfc213f0-2025ba33bd.zip

Dependency Hierarchy:

  • @carbon/ibmdotcom-utilities-2.48.0.tgz (Root Library)
    • isomorphic-dompurify-2.36.0.tgz
      • jsdom-28.0.0.tgz
        • undici-7.21.0.tgz (Vulnerable Library)

Found in HEAD commit: 6ae06cede98c3bc20fa0626e8f455e62830c20b8

Found in base branch: main

Vulnerability Details

ImpactWhen an application passes user-controlled input to the upgrade option of client.request(), an attacker can inject CRLF sequences (\r\n) to:

  • Inject arbitrary HTTP headers
  • Terminate the HTTP request prematurely and smuggle raw data to non-HTTP services (Redis, Memcached, Elasticsearch)
    The vulnerability exists because undici writes the upgrade value directly to the socket without validating for invalid header characters:
    // lib/dispatcher/client-h1.js:1121
    if (upgrade) {
    header += "connection: upgrade\r\nupgrade: ${upgrade}\r\n"
    }

Publish Date: 2026-03-12

URL: CVE-2026-1527

CVSS 3 Score Details (4.6)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: Low
    • Privileges Required: Low
    • User Interaction: Required
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: Low
    • Integrity Impact: Low
    • Availability Impact: None

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-4992-7rv2-5pvq

Release Date: 2026-03-12

Fix Resolution: undici - 7.24.0,undici - 6.24.0

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions