Skip to content
Heist/ feed
Back to feed
HighFix available

node-ajv — security advisory

Type: advisorySources: OSVAdvisory ID: DEBIAN-CVE-2026-75975

fast-uri is a URI parser for Node.js. Its custom parser for bracketed IPv6 literals does not validate the complete IPv6 grammar, so invalid trailing text in an authority can be silently discarded and a malformed attacker-controlled host is turned into a different valid IPv6 destination. For example, a bracketed literal with invalid trailing characters is normalized to the unspecified address, which a Node HTTP client then connects to a local service over loopback, and other malformed literals collapse to private-range addresses. No error is set on the parsed result, so an application checking the error field cannot detect the rewrite. An application that normalizes untrusted URLs before outbound requests, redirects, proxy routing, or address-policy enforcement can be redirected to a local or private IPv6 target, giving a server-side request forgery and address-policy bypass primitive. The affected versions are 2.3.1 up to but not including 2.4.5, 3.0.0 up to but not including 3.1.6, and 4.0.0 up to but not including 4.1.3. The issue is fixed in 2.4.5, 3.1.6, and 4.1.3, which validate bracketed IP literals against the full grammar and mark malformed literals as authority errors. Users should upgrade to a patched version.

Products
node-ajv
Affected versions
8.12.0~ds+~2.1.1-5, 8.17.1~ds+~3.0.1+~3.1.0-1, 8.17.1~ds+~3.0.1+~3.1.0-2, 8.17.1~ds+~3.0.1+~3.1.0-3, 8.17.1~ds+~3.0.1+~3.1.0-4, 8.18.0~ds+~cs6.1.1-1, 8.18.0~ds+~cs6.1.1-2, 8.20.0~ds+~cs6.1.3-1, 8.20.0~ds+~cs7.1.2-1, 8.20.0~ds+~cs7.1.3-1, 8.20.0~ds+~cs7.1.3-2, 8.20.0~ds+~cs7.1.3-3, 8.20.0~ds+~cs7.1.4-1, 8.20.0~ds+~cs7.1.5-1, 8.20.0~ds+~cs7.1.6-1, 8.20.0~ds+~cs7.1.6-2
Fixed versions
8.20.0~ds+~cs7.1.4-1
CVEs
CVE-2026-75975
Confirmed fixed CVEs
Not specified
Updated in this feed
30 Oct 2026, 17:32 UTC · Revision 1

Source evidence

DEBIAN-CVE-2026-75975

core-osv · Original source

Published 24 Aug 2026, 10:16 UTC

fast-uri is a URI parser for Node.js. Its custom parser for bracketed IPv6 literals does not validate the complete IPv6 grammar, so invalid trailing text in an authority can be silently discarded and a malformed attacker-controlled host is turned into a different valid IPv6 destination. For example, a bracketed literal with invalid trailing characters is normalized to the unspecified address, which a Node HTTP client then connects to a local service over loopback, and other malformed literals collapse to private-range addresses. No error is set on the parsed result, so an application checking the error field cannot detect the rewrite. An application that normalizes untrusted URLs before outbound requests, redirects, proxy routing, or address-policy enforcement can be redirected to a local or private IPv6 target, giving a server-side request forgery and address-policy bypass primitive. The affected versions are 2.3.1 up to but not including 2.4.5, 3.0.0 up to but not including 3.1.6, and 4.0.0 up to but not including 4.1.3. The issue is fixed in 2.4.5, 3.1.6, and 4.1.3, which validate bracketed IP literals against the full grammar and mark malformed literals as authority errors. Users should upgrade to a patched version.

osv:DEBIAN-CVE-2026-75975

node-ajv

Fixed versions: Not specified

node-ajv

Fixed versions: 8.20.0~ds+~cs7.1.4-1

Complete source record
{
  "id": "a109a853914307fa99fc652232e87455336f7a51d17d7344417ed8bc00456c0e",
  "url": "https://osv.dev/vulnerability/DEBIAN-CVE-2026-75975",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "DEBIAN-CVE-2026-75975",
    "summary": "fast-uri is a URI parser for Node.js. Its custom parser for bracketed IPv6 literals does not validate the complete IPv6 grammar, so invalid trailing text in an authority can be silently discarded and a malformed attacker-controlled host is turned into a different valid IPv6 destination. For example, a bracketed literal with invalid trailing characters is normalized to the unspecified address, which a Node HTTP client then connects to a local service over loopback, and other malformed literals collapse to private-range addresses. No error is set on the parsed result, so an application checking the error field cannot detect the rewrite. An application that normalizes untrusted URLs before outbound requests, redirects, proxy routing, or address-policy enforcement can be redirected to a local or private IPv6 target, giving a server-side request forgery and address-policy bypass primitive. The affected versions are 2.3.1 up to but not including 2.4.5, 3.0.0 up to but not including 3.1.6, and 4.0.0 up to but not including 4.1.3. The issue is fixed in 2.4.5, 3.1.6, and 4.1.3, which validate bracketed IP literals against the full grammar and mark malformed literals as authority errors. Users should upgrade to a patched version.",
    "evidence": "osv:DEBIAN-CVE-2026-75975",
    "products": [
      {
        "name": {
          "value": "node-ajv",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "8.12.0~ds+~2.1.1-5",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "8.17.1~ds+~3.0.1+~3.1.0-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "8.17.1~ds+~3.0.1+~3.1.0-2",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "8.17.1~ds+~3.0.1+~3.1.0-3",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "8.17.1~ds+~3.0.1+~3.1.0-4",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "8.18.0~ds+~cs6.1.1-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "8.18.0~ds+~cs6.1.1-2",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "8.20.0~ds+~cs6.1.3-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "8.20.0~ds+~cs7.1.2-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "8.20.0~ds+~cs7.1.3-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "8.20.0~ds+~cs7.1.3-2",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "8.20.0~ds+~cs7.1.3-3",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "8.20.0~ds+~cs7.1.4-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "8.20.0~ds+~cs7.1.5-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "8.20.0~ds+~cs7.1.6-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "8.20.0~ds+~cs7.1.6-2",
            "evidence": "/affected/0/versions"
          }
        ]
      },
      {
        "name": {
          "value": "node-ajv",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "8.20.0~ds+~cs7.1.4-1",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": [
          {
            "value": "8.12.0~ds+~2.1.1-5",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "8.17.1~ds+~3.0.1+~3.1.0-1",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "8.17.1~ds+~3.0.1+~3.1.0-2",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "8.17.1~ds+~3.0.1+~3.1.0-3",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "8.17.1~ds+~3.0.1+~3.1.0-4",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "8.18.0~ds+~cs6.1.1-1",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "8.18.0~ds+~cs6.1.1-2",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "8.20.0~ds+~cs6.1.3-1",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "8.20.0~ds+~cs7.1.2-1",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "8.20.0~ds+~cs7.1.3-1",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "8.20.0~ds+~cs7.1.3-2",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "8.20.0~ds+~cs7.1.3-3",
            "evidence": "/affected/1/versions"
          }
        ]
      }
    ],
    "severity": "high",
    "structured": {
      "id": "DEBIAN-CVE-2026-75975",
      "aliases": [
        "DEBIAN-CVE-2026-75975"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "node-ajv",
            "purl": "pkg:deb/debian/node-ajv?arch=source&distro=trixie",
            "ecosystem": "Debian:13"
          },
          "versions": [
            "8.12.0~ds+~2.1.1-5",
            "8.17.1~ds+~3.0.1+~3.1.0-1",
            "8.17.1~ds+~3.0.1+~3.1.0-2",
            "8.17.1~ds+~3.0.1+~3.1.0-3",
            "8.17.1~ds+~3.0.1+~3.1.0-4",
            "8.18.0~ds+~cs6.1.1-1",
            "8.18.0~ds+~cs6.1.1-2",
            "8.20.0~ds+~cs6.1.3-1",
            "8.20.0~ds+~cs7.1.2-1",
            "8.20.0~ds+~cs7.1.3-1",
            "8.20.0~ds+~cs7.1.3-2",
            "8.20.0~ds+~cs7.1.3-3",
            "8.20.0~ds+~cs7.1.4-1",
            "8.20.0~ds+~cs7.1.5-1",
            "8.20.0~ds+~cs7.1.6-1",
            "8.20.0~ds+~cs7.1.6-2"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-75975.json"
          },
          "ecosystem_specific": {
            "urgency": "not yet assigned"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "8.20.0~ds+~cs7.1.4-1"
                }
              ]
            }
          ],
          "package": {
            "name": "node-ajv",
            "purl": "pkg:deb/debian/node-ajv?arch=source&distro=forky",
            "ecosystem": "Debian:14"
          },
          "versions": [
            "8.12.0~ds+~2.1.1-5",
            "8.17.1~ds+~3.0.1+~3.1.0-1",
            "8.17.1~ds+~3.0.1+~3.1.0-2",
            "8.17.1~ds+~3.0.1+~3.1.0-3",
            "8.17.1~ds+~3.0.1+~3.1.0-4",
            "8.18.0~ds+~cs6.1.1-1",
            "8.18.0~ds+~cs6.1.1-2",
            "8.20.0~ds+~cs6.1.3-1",
            "8.20.0~ds+~cs7.1.2-1",
            "8.20.0~ds+~cs7.1.3-1",
            "8.20.0~ds+~cs7.1.3-2",
            "8.20.0~ds+~cs7.1.3-3"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-75975.json"
          },
          "ecosystem_specific": {
            "urgency": "not yet assigned"
          }
        }
      ],
      "modified": "2026-10-15T10:03:23.039476097Z",
      "provider": "osv",
      "upstream": [
        "CVE-2026-75975"
      ],
      "references": [
        "https://security-tracker.debian.org/tracker/CVE-2026-75975"
      ]
    },
    "related_cves": [
      {
        "value": "CVE-2026-75975",
        "evidence": "/upstream"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 330481,
  "published_at": "2026-08-24T10:16:40.237+00:00"
}