CVE-2025-59437
Unknown Unknown - Not Provided
BaseFortify

Publication date: 2025-09-16

Last updated on: 2025-09-16

Assigner: MITRE

Description
The ip (aka node-ip) package through 2.0.1 (in NPM) might allow SSRF because the IP address value 0 is improperly categorized as globally routable via isPublic. NOTE: this issue exists because of an incomplete fix for CVE-2024-29415. NOTE: in current versions of several applications, connection attempts to the IP address 0 (interpreted as 0.0.0.0) are blocked with error messages such as net::ERR_ADDRESS_INVALID. However, in some situations that depend on both application version and operating system, connection attempts to 0 and 0.0.0.0 are considered connection attempts to 127.0.0.1 (and, for this reason, a false value of isPublic would be preferable).
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2025-09-16
Last Modified
2025-09-16
Generated
2026-05-07
AI Q&A
2025-09-16
EPSS Evaluated
2026-05-05
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
indutny node-ip 2.0.1
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-918 The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination.
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?

This vulnerability in the ip (node-ip) package version 2.0.1 allows Server-Side Request Forgery (SSRF) bypass because the functions ip.isPublic() and ip.isPrivate() improperly validate certain IP address inputs. Specifically, the IP address value "0" (which resolves to 127.0.0.1) and octal representations like "017700000001" are misclassified as public instead of private. This happens due to inadequate input validation and lack of normalization of IP addresses, allowing attackers to bypass SSRF protections by making requests that appear to be to public IPs but actually target internal or localhost addresses. [1]


How can this vulnerability impact me? :

This vulnerability can have critical impacts including unauthorized access to internal networks, data exfiltration, service enumeration, privilege escalation, authentication bypass, access to cloud metadata services, and lateral movement within networks. Attackers can exploit the misclassification of IP addresses to bypass SSRF protections and perform malicious actions inside protected environments. [1]


How can this vulnerability be detected on my network or system? Can you suggest some commands?

Detection involves identifying if your application uses the vulnerable ip package version 2.0.1 and if it relies on ip.isPublic() or ip.isPrivate() functions for SSRF protection. You can test for the vulnerability by attempting requests to IP addresses '0' or '017700000001' and observing if these bypass SSRF protections. For example, you can use curl commands to test if requests to these IPs are allowed when they should be blocked: curl http://0/ and curl http://017700000001/. If these requests succeed or bypass SSRF filters, the vulnerability is present. [1]


What immediate steps should I take to mitigate this vulnerability?

Immediate mitigation steps include implementing enhanced validation functions that explicitly detect and block null route ('0') and octal format ('017700000001') IP addresses before calling ip.isPublic(). Avoid relying solely on ip.isPublic() and ip.isPrivate() for SSRF protection until the package is updated. Applying input normalization and validation for all IP address representations is recommended. Monitoring the official repository for patches and updating the ip package to a fixed version once available is also critical. [1]


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart