CVE-2025-10471 Overview
CVE-2025-10471 is a Server-Side Request Forgery (SSRF) vulnerability affecting ZKEACMS 4.3, an open-source content management system. The flaw resides in the Proxy function of src/ZKEACMS/Controllers/MediaController.cs. Attackers manipulate the url argument to coerce the server into issuing arbitrary outbound HTTP requests on their behalf.
The vulnerability is remotely exploitable and requires only low-privileged authenticated access. A public proof-of-concept exists, increasing the likelihood of opportunistic exploitation against exposed installations.
Critical Impact
Authenticated attackers can use the vulnerable proxy endpoint to reach internal services, cloud metadata endpoints, or other restricted network resources from the application server.
Affected Products
- ZKEACMS 4.3
- src/ZKEACMS/Controllers/MediaController.cs — Proxy function
- Deployments exposing the media proxy endpoint to untrusted users
Discovery Timeline
- 2025-09-15 - CVE-2025-10471 published to NVD
- 2026-06-17 - Last updated in NVD database
Technical Details for CVE-2025-10471
Vulnerability Analysis
The vulnerability is classified as Server-Side Request Forgery under [CWE-918]. The Proxy action in MediaController.cs accepts a user-supplied url parameter and fetches the referenced resource server-side without restricting the destination. Because the request originates from the application host, it can reach systems that external clients cannot.
Attack complexity is low and the exploit is publicly available, according to the VulDB reference (entry 323890). The EPSS probability is approximately 0.28% with a percentile around 19.8, reflecting limited observed scanning activity at the time of writing.
Root Cause
The root cause is missing validation and allow-listing of the url parameter passed to the proxy handler. The controller forwards the request without verifying the scheme, hostname, or whether the destination resolves to an internal or loopback address. This permits arbitrary destinations including http://127.0.0.1, http://169.254.169.254 (cloud metadata), and internal-only services.
Attack Vector
An authenticated attacker sends a crafted HTTP request to the media Proxy endpoint with the url parameter pointing to an internal target. The ZKEACMS server then issues the outbound request and returns the response body to the attacker. This enables reconnaissance of internal networks, retrieval of cloud instance credentials, and interaction with services that trust the application host. Refer to the GitHub PoC Repository for technical details.
Detection Methods for CVE-2025-10471
Indicators of Compromise
- Requests to the ZKEACMS media Proxy endpoint containing url parameters that reference private RFC1918 ranges, 127.0.0.1, localhost, or 169.254.169.254
- Outbound HTTP connections from the ZKEACMS application host to unexpected internal hosts or cloud metadata endpoints
- Repeated 200-status responses to the proxy endpoint following non-standard URL schemes such as file://, gopher://, or dict://
Detection Strategies
- Inspect web server and application logs for the Proxy route with externally-supplied url values and compare destinations against an allow-list of expected hosts
- Correlate proxy endpoint invocations with subsequent outbound network flows to identify SSRF probes against internal infrastructure
- Flag responses where the proxied target returns content typical of cloud metadata services, internal admin panels, or service banners
Monitoring Recommendations
- Forward ZKEACMS access logs and host network telemetry to a centralized analytics platform for correlation between request patterns and outbound traffic
- Alert on any access to cloud metadata IP addresses originating from the ZKEACMS host
- Track authenticated low-privilege accounts performing unusual volumes of requests to the media proxy endpoint
How to Mitigate CVE-2025-10471
Immediate Actions Required
- Restrict access to the ZKEACMS media Proxy endpoint to trusted internal users or disable it if not required
- Block outbound traffic from the ZKEACMS host to cloud metadata services and internal management interfaces at the network layer
- Audit user accounts with permission to invoke the proxy and revoke unnecessary access
Patch Information
No vendor advisory or fixed version is listed in the NVD or VulDB references at the time of writing. Monitor the ZKEACMS project and the VulDB #323890 Detail entry for updates. Until an official patch is released, apply compensating controls.
Workarounds
- Place ZKEACMS behind a reverse proxy or WAF that rejects requests where the url parameter resolves to private, loopback, or link-local addresses
- Implement an explicit allow-list of permitted outbound destinations in the application configuration or upstream proxy
- Enforce DNS rebinding protection by resolving and validating destinations before issuing the outbound request
# Example nginx allow-list filter for the Proxy endpoint
location /Media/Proxy {
if ($arg_url !~* "^https?://(cdn\.example\.com|assets\.example\.com)/") {
return 403;
}
proxy_pass http://zkeacms_upstream;
}
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

