GeoServer vulnerable to SSRF in TestWfsPost for specific targets, e.g. PHP + NginxGHSA-68cf-j696-wvv9
HIGHGHSA-68cf-j696-wvv9 is a high-severity (CVSS 7.5) vulnerability in org.geoserver:gs-wfs. A fix is available for org.geoserver:gs-wfs — see the affected versions and patch details below.
Real-World Exposure
org.geoserver:gs-wfs☕org.geoserver:gs-wfsReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Maven packages — download data is not available via public APIs for these ecosystems.
Description
Summary
Missing checks allow for SSRF to specific targets using the TestWfsPost enpoint.
Mitigation
To manage the proxy base value as a system administrator, use the parameter PROXY_BASE_URL to provide a non-empty value that cannot be overridden by the user interface or incoming request.thomsmith.
Resolution
The TestWfsPost has been replaced in GeoServer 2.25.2 and GeoServer 2.24.4 with a JavaScript Demo Requests page to test OGC Web Services.
References
- CVE-2024-29198 Unauthenticated SSRF via TestWfsPost
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| ☕Maven | org.geoserver:gs-wfs | ≥ 1.0.0&&< 2.24.4 | 2.24.4org.geoserver:gs-wfs:2.24.4 |
| ☕Maven | org.geoserver:gs-wfs | ≥ 2.25.0&&< 2.25.2 | 2.25.2org.geoserver:gs-wfs:2.25.2 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for org.geoserver:gs-wfs, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update org.geoserver:gs-wfs to 2.24.4 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-68cf-j696-wvv9 is resolved across your whole dependency graph.
Workarounds
Restrict outbound requests from the affected component to an allowlist of hosts, block access to link-local and internal address ranges at the network layer, and require authentication on internal services so a forged request cannot reach them unauthenticated.
Frequently Asked Questions
Is GHSA-68cf-j696-wvv9 in your dependencies?
Find it across Maven, including transitive dependencies.