CVE-2025-27505
Executive Summary
CVE-2025-27505 is a missing authorization vulnerability in GeoServer, an open-source server for sharing and editing geospatial data. The flaw allows an unauthenticated attacker to bypass the default REST API security controls and access the REST API index page by appending a file extension (e.g., /rest.html instead of /rest). This exposes information about installed extensions and API endpoints, aiding reconnaissance for further attacks. The vulnerability has a CVSS score of 5.3 (Medium) and is trivial to exploit with no authentication required. Patches are available in versions 2.26.3 and 2.25.6, and a workaround exists by modifying the security configuration.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
GeoServer is a Java-based web application distributed as a WAR file or platform-specific binaries. The vulnerability does not directly affect package managers like NPM or PyPI, but organizations using containerized deployments (e.g., Docker images) should verify they are using patched versions. The official Docker image osgeo/geoserver should be updated to 2.26.3 or 2.25.6 or later.
CVSS Breakdown & Threat Level
- CVSS Score: 5.3 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Confidentiality Impact: Low (disclosure of installed extensions)
- Integrity Impact: None
- Availability Impact: None
Threat Level: Medium. The vulnerability is easy to exploit and provides reconnaissance value, but does not directly allow data modification or system compromise.
Deep Dive & Mechanics
The GeoServer REST API is secured by a filter that matches URL paths starting with /rest and its subpaths (e.g., /rest/workspaces). However, the filter does not account for file extensions. When a request is made to /rest.html, the path does not match the security filter pattern (which expects /rest or /rest/**), so the request bypasses authentication and authorization checks.
The REST API index page (/rest.html) returns an HTML page listing available API endpoints and installed extensions. This information can be used by an attacker to identify vulnerable or misconfigured components.
Root Cause: The security filter configuration in ${GEOSERVER_DATA_DIR}/security/config.xml uses path patterns that do not include file extensions. The default pattern is likely /rest,** which does not match /rest.html.
Vulnerable vs. Patched Code
Vulnerable Configuration (default):
<filter>
<name>rest</name>
<class>org.geoserver.security.filter.GeoServerSecurityFilter</class>
<paths>/rest,/rest/**</paths>
</filter>
Patched Configuration (workaround or fixed version):
<filter>
<name>rest</name>
<class>org.geoserver.security.filter.GeoServerSecurityFilter</class>
<paths>/rest.*,/rest/**</paths>
</filter>
The patched pattern /rest.* matches /rest.html, /rest.json, etc., ensuring the security filter is applied to all REST API requests regardless of file extension.
Exploitation & Lab Setup
Red Team
Prerequisites:
- A vulnerable GeoServer instance (version < 2.26.3 or < 2.25.6)
- Network access to the GeoServer web interface
Exploitation Steps:
Reconnaissance: Identify GeoServer instances using Shodan or FOFA with the dork
http.title:"geoserver".Access the REST API Index:
curl -v http://target:8080/geoserver/rest.htmlVerify Vulnerability: The response should contain the string "Geoserver Configuration API" and "about/status" with a 200 status code.
Information Gathering: The index page lists available API endpoints and installed extensions. For example:
/rest/about/status- System status/rest/workspaces- Workspace information/rest/layers- Layer information
Nuclei Template (provided):
id: CVE-2025-27505
info:
name: GeoServer - Missing Authorization on REST API Index
author: securitytaters
severity: medium
description: |
GeoServer contains a missing authorization vulnerability that allows unauthorized access to the REST API Index page, potentially exposing sensitive configuration information.
impact: |
Unauthenticated users can access the GeoServer REST API Index page, potentially exposing sensitive configuration information and available API endpoints.
remediation: |
Upgrade to the latest GeoServer version that implements proper authorization checks for the REST API Index page.
reference:
- http://geoserver.org/
- https://geoserver.org/vulnerability/2025/06/10/cve-disclosure.html
- https://nvd.nist.gov/vuln/detail/CVE-2025-27505
classification:
epss-score: 0.00835
epss-percentile: 0.7471
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
cvss-score: 5.3
cve-id: CVE-2025-27505
cwe-id: CWE-862
cpe: cpe:2.3:a:geoserver:geoserver:*:*:*:*:*:*:*:*
metadata:
verified: true
max-request: 2
fofa-query: app="geoserver"
shodan-query: http.title:"geoserver"
vendor: osgeo
product: geoserver
tags: cve,cve2025,geoserver,misconfig,osgeo,vkev,vuln
http:
- method: GET
path:
- "{{BaseURL}}/rest.html"
- "{{BaseURL}}/geoserver/rest.html"
stop-at-first-match: true
matchers-condition: and
matchers:
- type: word
part: body
words:
- "Geoserver Configuration API"
- type: word
part: body
words:
- "about/status"
- type: status
status:
- 200
Blue Team
Detection:
- Monitor web server logs for requests to
/rest.html,/rest.json, or similar paths with file extensions. - Alert on 200 responses to these paths from unauthenticated users.
- Use the provided YARA and Sigma rules for detection.
Hunting:
- Search for any successful requests to
/rest.*that are not preceded by authentication. - Review GeoServer access logs for unusual patterns of API exploration.
Containment:
- Apply the workaround immediately by modifying the security configuration.
- If patching is not possible, restrict network access to the GeoServer web interface using a firewall or reverse proxy.
Indicators of Compromise (IOCs)
- URL Paths:
/rest.html,/rest.json,/rest.xml - HTTP Response Body: Contains "Geoserver Configuration API" and "about/status"
- HTTP Status Code: 200
- User-Agent: Any (no specific pattern)
- Source IP: Any external IP making unauthenticated requests to these paths
Detection Engineering
YARA Rule
rule CVE_2025_27505_GeoServer_REST_Bypass {
meta:
description = "Detects attempts to exploit CVE-2025-27505 in GeoServer"
author = "Valters IT"
date = "2025-06-11"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2025-27505"
hash = "4a0a00473045022100cdafa1e1d840f87d64d55e4f37d832d64e1c0be8d83ddebefa1799313a4aa8f90220664246456ae0b16332cf36ca38fd0c0e16fa06ae3f7699a4d8c1a9f9cc8c3a16"
strings:
$s1 = "Geoserver Configuration API" ascii wide nocase
$s2 = "about/status" ascii wide nocase
condition:
all of them
}
Sigma Rule
title: GeoServer REST API Index Unauthorized Access
id: 8a7b3c2d-1e5f-4a6b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects unauthorized access to GeoServer REST API index page via file extension bypass
author: Valters IT
date: 2025/06/11
references:
- https://nvd.nist.gov/vuln/detail/CVE-2025-27505
- https://geoserver.org/vulnerability/2025/06/10/cve-disclosure.html
logsource:
category: webserver
product: apache
service: access
detection:
selection:
cs-method: GET
cs-uri-stem|contains:
- '/rest.html'
- '/rest.json'
- '/rest.xml'
sc-status: 200
condition: selection
falsepositives:
- Legitimate authenticated users accessing the API index
level: medium
tags:
- attack.t1190
- cve.2025.27505
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-27505 GeoServer REST API Index Unauthorized Access"; flow:to_server,established; content:"GET"; http_method; content:"/rest.html"; http_uri; nocase; content:"Geoserver Configuration API"; http_server_body; nocase; content:"about/status"; http_server_body; nocase; classtype:attempted-recon; sid:10000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Upgrade GeoServer to version 2.26.3 or 2.25.6 (or later).
- Apply Workaround: If upgrade is not possible, modify
${GEOSERVER_DATA_DIR}/security/config.xml:- Change the
pathsfor therestfilter to/rest.*,/rest/** - Change the
pathsfor thegwcfilter to/gwc/rest.*,/gwc/rest/** - Restart GeoServer.
- Change the
Long-term Measures:
- Implement a Web Application Firewall (WAF) to block requests to
/rest.*without proper authentication. - Restrict network access to the GeoServer web interface using a VPN or firewall rules.
- Regularly audit security configurations and apply patches promptly.
- Monitor for similar path traversal or bypass vulnerabilities in other web applications.
Valters IT Signature
This report was generated by Valters IT DevSecOps AI. For questions, contact Secure Channels (Signal / Portal).
{/* [Security Hash: 3B289B0DA5FB9B0EB371D0D2] */}
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.