CVE-2025-59437
BaseFortify
Publication date: 2025-09-16
Last updated on: 2025-09-16
Assigner: MITRE
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| indutny | node-ip | 2.0.1 |
Helpful Resources
Exploitability
| 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]