Skip to content
Heist/ feed
Back to feed
Critical

node-undici — security advisory

Type: advisorySources: OSVAdvisory ID: UBUNTU-CVE-2026-84961

undici's BalancedPool constructor passes its entire options object through an internal deep-clone that serializes and reparses the value as JSON. Because JSON cannot represent functions, any function-valued TLS option, such as a caller-supplied checkServerIdentity callback or a custom connector inside the connect option, is silently discarded before it reaches the TLS layer. As a result a peer whose certificate the application's custom checkServerIdentity was written to reject, but which still passes Node's default hostname and chain checks, is accepted when reached through BalancedPool. The Client, Pool, and Agent dispatchers are not affected because they extract the connect and tls options before cloning. This affects undici versions from 7.24.1 up to 7.29.1 and from 8.0.0 up to 8.10.2, and only when the application supplies a function-valued connect or tls option to BalancedPool. Users should upgrade to undici 7.29.1 or 8.10.2.

Products
node-undici
Affected versions
5.22.1+dfsg1+~cs20.10.10.2-1ubuntu1, 5.26.3+dfsg1+~cs23.10.12-2, 7.16.0+dfsg+~cs3.2.0-2, 7.18.2+dfsg+~cs3.2.0-1, 7.18.2+dfsg+~cs3.2.0-1build1, 7.24.6+dfsg+~cs3.2.0-3, 7.3.0+dfsg1+~cs24.12.11-2, 8.5.0+dfsg+~cs3.2.0-2, 8.5.0+dfsg+~cs3.2.0-3, 8.9.0+dfsg+~cs3.2.0-1
Fixed versions
Not specified
CVEs
CVE-2026-84961
Confirmed fixed CVEs
Not specified
Updated in this feed
31 Oct 2026, 03:23 UTC · Revision 1

Source evidence

UBUNTU-CVE-2026-84961

core-osv · Original source

Published 4 Sept 2026, 17:17 UTC

undici's BalancedPool constructor passes its entire options object through an internal deep-clone that serializes and reparses the value as JSON. Because JSON cannot represent functions, any function-valued TLS option, such as a caller-supplied checkServerIdentity callback or a custom connector inside the connect option, is silently discarded before it reaches the TLS layer. As a result a peer whose certificate the application's custom checkServerIdentity was written to reject, but which still passes Node's default hostname and chain checks, is accepted when reached through BalancedPool. The Client, Pool, and Agent dispatchers are not affected because they extract the connect and tls options before cloning. This affects undici versions from 7.24.1 up to 7.29.1 and from 8.0.0 up to 8.10.2, and only when the application supplies a function-valued connect or tls option to BalancedPool. Users should upgrade to undici 7.29.1 or 8.10.2.

osv:UBUNTU-CVE-2026-84961

node-undici

Fixed versions: Not specified

node-undici

Fixed versions: Not specified

node-undici

Fixed versions: Not specified

Complete source record
{
  "id": "a085040bffd874461dadbff3623dbd20a37ed40989b47423b4c3c8e3c3c98cfc",
  "url": "https://osv.dev/vulnerability/UBUNTU-CVE-2026-84961",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "UBUNTU-CVE-2026-84961",
    "summary": "undici's BalancedPool constructor passes its entire options object through an internal deep-clone that serializes and reparses the value as JSON. Because JSON cannot represent functions, any function-valued TLS option, such as a caller-supplied checkServerIdentity callback or a custom connector inside the connect option, is silently discarded before it reaches the TLS layer. As a result a peer whose certificate the application's custom checkServerIdentity was written to reject, but which still passes Node's default hostname and chain checks, is accepted when reached through BalancedPool. The Client, Pool, and Agent dispatchers are not affected because they extract the connect and tls options before cloning. This affects undici versions from 7.24.1 up to 7.29.1 and from 8.0.0 up to 8.10.2, and only when the application supplies a function-valued connect or tls option to BalancedPool. Users should upgrade to undici 7.29.1 or 8.10.2.",
    "evidence": "osv:UBUNTU-CVE-2026-84961",
    "products": [
      {
        "name": {
          "value": "node-undici",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "5.22.1+dfsg1+~cs20.10.10.2-1ubuntu1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "5.26.3+dfsg1+~cs23.10.12-2",
            "evidence": "/affected/0/versions"
          }
        ]
      },
      {
        "name": {
          "value": "node-undici",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "7.18.2+dfsg+~cs3.2.0-1build1",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "7.24.6+dfsg+~cs3.2.0-3",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "8.5.0+dfsg+~cs3.2.0-2",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "8.5.0+dfsg+~cs3.2.0-3",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "8.9.0+dfsg+~cs3.2.0-1",
            "evidence": "/affected/1/versions"
          }
        ]
      },
      {
        "name": {
          "value": "node-undici",
          "evidence": "/affected/2/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "7.3.0+dfsg1+~cs24.12.11-2",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "7.16.0+dfsg+~cs3.2.0-2",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "7.18.2+dfsg+~cs3.2.0-1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "7.18.2+dfsg+~cs3.2.0-1build1",
            "evidence": "/affected/2/versions"
          }
        ]
      }
    ],
    "severity": "critical",
    "structured": {
      "id": "UBUNTU-CVE-2026-84961",
      "aliases": [
        "UBUNTU-CVE-2026-84961"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N"
        },
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N"
        },
        {
          "type": "Ubuntu",
          "score": "medium"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "node-undici",
            "purl": "pkg:deb/ubuntu/node-undici?arch=source&distro=noble",
            "ecosystem": "Ubuntu:24.04:LTS"
          },
          "versions": [
            "5.22.1+dfsg1+~cs20.10.10.2-1ubuntu1",
            "5.26.3+dfsg1+~cs23.10.12-2"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-84961.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "node-llhttp",
                "binary_version": "9.1.3~5.26.3+dfsg1+~cs23.10.12-2"
              },
              {
                "binary_name": "node-undici",
                "binary_version": "5.26.3+dfsg1+~cs23.10.12-2"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "node-undici",
            "purl": "pkg:deb/ubuntu/node-undici?arch=source&distro=stonking",
            "ecosystem": "Ubuntu:26.10"
          },
          "versions": [
            "7.18.2+dfsg+~cs3.2.0-1build1",
            "7.24.6+dfsg+~cs3.2.0-3",
            "8.5.0+dfsg+~cs3.2.0-2",
            "8.5.0+dfsg+~cs3.2.0-3",
            "8.9.0+dfsg+~cs3.2.0-1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-84961.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "node-undici",
                "binary_version": "8.9.0+dfsg+~cs3.2.0-1"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "node-undici",
            "purl": "pkg:deb/ubuntu/node-undici?arch=source&distro=resolute",
            "ecosystem": "Ubuntu:26.04:LTS"
          },
          "versions": [
            "7.3.0+dfsg1+~cs24.12.11-2",
            "7.16.0+dfsg+~cs3.2.0-2",
            "7.18.2+dfsg+~cs3.2.0-1",
            "7.18.2+dfsg+~cs3.2.0-1build1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-84961.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "node-undici",
                "binary_version": "7.18.2+dfsg+~cs3.2.0-1build1"
              }
            ]
          }
        }
      ],
      "modified": "2026-10-17T13:01:12.876265905Z",
      "provider": "osv",
      "upstream": [
        "CVE-2026-84961"
      ],
      "references": [
        "https://ubuntu.com/security/CVE-2026-84961",
        "https://www.cve.org/CVERecord?id=CVE-2026-84961",
        "https://github.com/nodejs/undici/security/advisories/GHSA-w293-vg96-wgc3"
      ]
    },
    "related_cves": [
      {
        "value": "CVE-2026-84961",
        "evidence": "/upstream"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/1/score"
  },
  "source_id": "core-osv",
  "document_id": 361263,
  "published_at": "2026-09-04T17:17:00+00:00"
}