request-filtering-agent: Synchronous throw from createConnection() for literal private-IP hosts bypasses req.on('error'), crashing the Node.js process
CVE-2026-62985GHSA-r3r9-wp5j-pq5g
What to do
Vendor fix available. Upgrade each affected package to the fixed version on its release line (request-filtering-agent 3.2.1), redeploy, then verify what is actually installed.
This page has no inventory attached, so it cannot say whether you are affected. A vendor fix is not proof that your deployment is fixed.
Affected packages
- Affected
- < 3.2.1
- Fixed in
- 3.2.1
Sources
- GitHub Advisory Database and maintainer security advisories on GitHub
GitHub-reviewed advisory GHSA-r3r9-wp5j-pq5g lists affected ranges: npm request-filtering-agent >=0 <3.2.1
VerifiedObserved Structured GitHub Advisory Database record (type=reviewed) from the GitHub REST API.
- Open Source Vulnerabilities (OSV.dev), including the GitHub Advisory Database
OSV record GHSA-r3r9-wp5j-pq5g lists affected ranges: npm request-filtering-agent >=0 <3.2.1 (fixed)
VerifiedObserved Structured OSV record; GitHub-reviewed advisory.
Severity and exploitation
- Exploitation
- No confirmed exploitation recorded. Patch Next marks exploitation only from CISA KEV.
- CVSS
- 7.5 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- EPSS
- CVE-2026-62985: 0.56% estimated exploitation activity in the next 30 days; percentile 46.91 (FIRST EPSS, 2026-11-03). This is a model estimate, not proof of exploitation or customer exposure.
Source description
As published by the source; long descriptions are shortened.
Summary RequestFilteringHttpAgent / RequestFilteringHttpsAgent block requests to private IPs, but the blocking happens via a synchronous throw inside createConnection() for literal private-IP hostnames (e.g. 169.254.169.254, 127.0.0.1). Node.js's http.request / http.get expects createConnection to emit an error asynchronously; a synchronous throw instead escapes the caller's req.on('error', ...) handler entirely and becomes an unhandled exception that crashes the process. Affected request-filtering-agent <= 3.2.0 (latest). PoC (replicated live on 3.2.0) Actual output: Note: hostnames that resolve to private IPs (e.g. localhost) are handled via the async lookup path and correctly emit an error event — this asymmetry confirms the sync-throw is a defect. Impact Any application using request-filtering-agent where an attacker can trigger an HTTP request to a literal private-IP (e.g. from a user-supplied URL that is pre-validated but still reaches http.get) will crash the Node.js process —…
Dates and revisions
- Published by the source
- Last modified by the source
- Source last checked
- Revision 3 · amended ·
Amended from ghsa record GHSA-r3r9-wp5j-pq5g
- Revision 2 · amended ·
Amended from osv record GHSA-r3r9-wp5j-pq5g
- Revision 1 · created ·
Published from ghsa record GHSA-r3r9-wp5j-pq5g
Agent brief
Preview the exact text before you copy it. Commands are read-only suggestions; review them before running anything.
# Patch Next advisory brief: CVE-2026-62985
Advisory: request-filtering-agent: Synchronous throw from createConnection() for literal private-IP hosts bypasses req.on('error'), crashing the Node.js process
IDs: CVE-2026-62985, GHSA-r3r9-wp5j-pq5g
Record: https://patchnext.com/advisories/cve-2026-62985 (revision 3, source checked 26 Oct 2026, 13:02 UTC)
Inventory: none attached. This brief comes from a public page and does not say whether any deployment is affected.
Severity: High (CVSS 7.5)
Exploitation: no confirmed exploitation recorded. Patch Next confirms exploitation only from CISA KEV.
Vendor response: Vendor fix available; fixed versions by package: request-filtering-agent 3.2.1. A vendor fix does not mean a deployment is fixed.
## Affected components
- npm request-filtering-agent: affected < 3.2.1; fixed in 3.2.1
## Suggested inspection (read-only)
- `npm ls request-filtering-agent --all`: lists every installed copy and version, including transitive ones. Run in the project root after `npm ci`.
## Supported action
Upgrade each affected component to a fixed version on its release line. For a transitive dependency, upgrade the parent package or add an override or constraint, then regenerate the lockfile. Redeploy every environment that ran an affected version.
## Required regression checks
- Run the test suite and a production build.
- Exercise the features that depend on request-filtering-agent.
- Repeat the inspection and confirm that only fixed versions remain installed.
## Rollback considerations
- Keep the previous lockfile and deployment artifact. Rolling back reinstates the vulnerable version, so apply any documented mitigation while you fix forward.
## Unresolved questions
- Which deployments run an affected version?
- Exploitation status can change. Check again before lowering the priority.
- Mark the work resolved only after the fixed version is verified in production.
## Sources
- Verified: https://github.com/advisories/GHSA-r3r9-wp5j-pq5g (GitHub-reviewed advisory GHSA-r3r9-wp5j-pq5g lists affected ranges: npm request-filtering-agent >=0 <3.2.1)
- Verified: https://osv.dev/vulnerability/GHSA-r3r9-wp5j-pq5g (OSV record GHSA-r3r9-wp5j-pq5g lists affected ranges: npm request-filtering-agent >=0 <3.2.1 (fixed))
Commands are suggestions: review each one before running it.Loading voting…