Executive brief
request-filtering-agent is a Node.js library that filters outbound HTTP and HTTPS requests to block access to private IP addresses and prevent server-side request forgery (SSRF) attacks. A flaw in how it validates HTTPS connections allows attackers to bypass this protection by making HTTPS requests directly to 127.0.0.1, potentially gaining unauthorized access to internal services running on localhost that should be blocked. This is particularly dangerous in applications that accept user-controlled URLs.
Technical details
The vulnerability is a Server-Side Request Forgery (SSRF) bypass (CWE-918) in the HTTPS agent component. The root cause is that the library fails to validate direct IP addresses like https://127.0.0.1 during TLS connection setup, allowing such requests to bypass the IP filtering logic. HTTP requests to 127.0.0.1 are correctly blocked, and domain-based requests like https://localhost are also blocked due to DNS lookup, but direct HTTPS connections to the loopback IP slip through. An unauthenticated attacker can craft HTTPS requests to https://127.0.0.1 on any port (e.g., 8443) to reach internal services. The vulnerability affects request-filtering-agent versions 1.x.x and earlier; it has been fixed in version 2.0.0.
Affected products
- azu request-filtering-agent 1.x.x and earlier
Timeline
- 2025-08-25: disclosed: Vulnerability disclosed and GHSA advisory published
- 2025-08-25: patched: Fixed in version 2.0.0