nossrf CVE-2025-2691
HIGHSeverity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Lifecycle Timeline
7DescriptionCVE.org
Versions of the package nossrf before 1.0.4 are vulnerable to Server-Side Request Forgery (SSRF) where an attacker can provide a hostname that resolves to a local or reserved IP address space and bypass the SSRF protection mechanism.
AnalysisAI
Authentication bypass in nossrf JavaScript library (versions <1.0.4) enables Server-Side Request Forgery against internal network resources by circumventing the library's SSRF protection mechanism. Attackers can supply hostnames resolving to reserved IP ranges (RFC 1918 private addresses, loopback, link-local) to access internal services despite nossrf being deployed specifically to prevent SSRF attacks. Publicly available exploit code exists (Snyk advisory). EPSS score of 0.14% (34th percentile) indicates limited observed exploitation attempts despite POC availability, likely due to the library's niche usage pattern. No CISA KEV listing indicates targeted rather than widespread exploitation campaigns.
Technical ContextAI
The nossrf package is a JavaScript library (npm ecosystem, Node.js runtime) designed to validate and sanitize URLs to prevent Server-Side Request Forgery attacks. The vulnerability stems from inadequate hostname resolution validation (CWE-918: Server-Side Request Forgery). The library's filtering logic fails to properly handle DNS rebinding, time-of-check-time-of-use race conditions, or alternative DNS encoding schemes that allow hostnames to resolve to prohibited IP address spaces after passing initial validation checks. Reserved IP ranges include RFC 1918 private networks (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), loopback addresses (127.0.0.0/8), link-local addresses (169.254.0.0/16), and other special-use ranges. Affected applications use nossrf as a security control, trusting it to filter user-supplied URLs before making backend HTTP requests, making this bypass particularly impactful as it defeats the deployed security mechanism.
RemediationAI
Upgrade nossrf to version 1.0.4 or later immediately using npm (npm update nossrf) or yarn package managers. Verify the upgrade succeeded by checking package.json and package-lock.json for version >=1.0.4. If immediate upgrade is not feasible, implement defense-in-depth compensating controls with the following trade-offs: (1) Deploy network egress filtering to block outbound requests from application servers to RFC 1918 private ranges, loopback addresses, and cloud metadata endpoints (169.254.169.254) - this prevents exploitation but may break legitimate internal service communication requiring whitelist maintenance. (2) Implement additional URL validation using alternative libraries (node-ssrf-check, ssrf-req-filter) in series with nossrf - adds processing overhead and complexity but provides redundant protection. (3) Use hostname allowlisting instead of denylisting if feasible - limits functionality to known-good external domains but eliminates entire classes of bypass techniques. Do not rely solely on nossrf <1.0.4 for SSRF protection even with workarounds. Full advisory and patch details: https://security.snyk.io/vuln/SNYK-JS-NOSSRF-9510842.
Share
External POC / Exploit Code
Leaving vuln.today