CVE-2025-1447 Overview
CVE-2025-1447 is a Server-Side Request Forgery (SSRF) vulnerability in kasuganosoras Pigeon version 1.0.177. The flaw resides in the /pigeon/imgproxy/index.php endpoint, where the url parameter is passed to a proxying function without sufficient validation. Remote attackers can manipulate this parameter to force the server to issue arbitrary HTTP requests to internal or external destinations. The weakness is tracked as [CWE-918] and can be exploited over the network with low privileges and no user interaction. The maintainer resolved the issue in Pigeon 1.0.181 through commit 84cea5fe73141689da2e7ec8676d47435bd6423e.
Critical Impact
Attackers can coerce the Pigeon image proxy into making arbitrary server-side HTTP requests, exposing internal services and cloud metadata endpoints.
Affected Products
- kasuganosoras Pigeon 1.0.177
- Pigeon releases prior to 1.0.181
- Deployments exposing /pigeon/imgproxy/index.php to untrusted networks
Discovery Timeline
- 2025-02-19 - CVE-2025-1447 published to NVD
- 2026-06-17 - Last updated in NVD database
Technical Details for CVE-2025-1447
Vulnerability Analysis
The vulnerability affects the image proxy component of Pigeon, an open-source PHP application published on GitHub by kasuganosoras. The /pigeon/imgproxy/index.php script accepts a user-controlled url argument and dispatches an HTTP request to fetch the referenced resource. Because the endpoint does not restrict the target host, scheme, or address family, an attacker can substitute the intended remote image URL with an address of their choosing. This lets the attacker use the Pigeon backend as a request relay against systems it can reach directly. The classification aligns with [CWE-918]: Server-Side Request Forgery.
Root Cause
The root cause is missing validation of the url request parameter inside the image proxy handler. The application trusts client-supplied input and forwards it to the outbound HTTP client without an allowlist of hostnames, without blocking private IP ranges, and without restricting protocol handlers. The fix in commit 84cea5fe73141689da2e7ec8676d47435bd6423e introduces input filtering to constrain the destinations the proxy will contact. See the GitHub commit details for the exact code change.
Attack Vector
Exploitation requires only a network path to the affected instance and a low-privileged account able to reach the proxy endpoint. An attacker submits an HTTP request to /pigeon/imgproxy/index.php with the url parameter set to an internal address, such as a metadata service, an intranet application, or a loopback service. The Pigeon server then issues the outbound request on the attacker's behalf, and any response content or timing signal can leak information about internal infrastructure. Additional technical discussion is available in the GitHub CVE issue thread and VulDB entry #296134.
No verified public exploit code is available for CVE-2025-1447. Refer to the linked references for reproduction details.
Detection Methods for CVE-2025-1447
Indicators of Compromise
- Requests to /pigeon/imgproxy/index.php where the url parameter targets private ranges such as 127.0.0.1, 10.0.0.0/8, 172.16.0.0/12, or 192.168.0.0/16.
- Proxy requests with url values pointing to cloud metadata endpoints such as 169.254.169.254.
- Unexpected outbound connections originating from the Pigeon web server process to internal service ports.
Detection Strategies
- Inspect web server access logs for anomalous url query parameter values passed to the image proxy endpoint.
- Alert on non-HTTP schemes such as file://, gopher://, or dict:// appearing in proxy requests.
- Correlate application logs with egress firewall telemetry to identify server-initiated requests that bypass expected image CDNs.
Monitoring Recommendations
- Enable verbose logging on the Pigeon application and forward events to a centralized log platform.
- Monitor outbound HTTP traffic from the Pigeon host, flagging destinations outside an approved allowlist.
- Baseline typical imgproxy request volume and alert on sudden spikes that may indicate scanning or enumeration.
How to Mitigate CVE-2025-1447
Immediate Actions Required
- Upgrade Pigeon to version 1.0.181 or later using the official GitHub release.
- Restrict network access to /pigeon/imgproxy/index.php through authentication or IP allowlists until the patch is applied.
- Review historical access logs for prior exploitation attempts against the image proxy endpoint.
Patch Information
The maintainer released the fix in Pigeon 1.0.181, identified by commit hash 84cea5fe73141689da2e7ec8676d47435bd6423e. Administrators should pull the tagged release and redeploy. Details are available in the GitHub commit and the VulDB advisory.
Workarounds
- Block the /pigeon/imgproxy/index.php route at a reverse proxy or web application firewall if patching is delayed.
- Enforce egress filtering so the Pigeon host cannot connect to private IP ranges or cloud metadata endpoints.
- Add a hostname allowlist in front of the proxy so only approved image sources are reachable.
# Example nginx rule to block SSRF-prone requests until patched
location = /pigeon/imgproxy/index.php {
if ($arg_url ~* "(127\.|10\.|192\.168\.|172\.(1[6-9]|2[0-9]|3[0-1])\.|169\.254\.|localhost|file://|gopher://|dict://)") {
return 403;
}
}
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

