CVE-2025-52892
Executive Summary
CVE-2025-52892 is a medium-severity denial-of-service (DoS) vulnerability affecting EspoCRM versions 9.1.6 and below. The vulnerability is triggered when a user loads EspoCRM in a browser with double slashes in the URL (e.g., https://domain//#Admin). If the web server does not strip the double slash, it corrupts the Slim router's cache, rendering the entire EspoCRM instance unusable until a manual rebuild is performed. This is a client-initiated DoS that requires user interaction (clicking a crafted link) but does not require authentication. The fix is available in version 9.1.7.
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
This vulnerability is not related to a package manager (NPM, PyPI, Go, Ruby). It is a direct vulnerability in the EspoCRM PHP application.
CVSS Breakdown & Threat Level
- CVSS Score: 4.5 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L
- Attack Vector (AV): Network (N) - The attack is carried out over the network.
- Attack Complexity (AC): Low (L) - No special conditions are required.
- Privileges Required (PR): None (N) - No authentication is needed.
- User Interaction (UI): Required (R) - The victim must click a crafted link.
- Scope (S): Unchanged (U) - The vulnerable component and the impacted component are the same.
- Confidentiality (C): None (N) - No data is exposed.
- Integrity (I): None (N) - No data is modified.
- Availability (A): Low (L) - The application becomes unusable until a rebuild is performed.
Threat Level: Medium. The attack requires user interaction, but the impact is a complete denial of service for the EspoCRM instance.
Deep Dive & Mechanics
The vulnerability lies in how EspoCRM's Slim router handles URL caching. When a user accesses EspoCRM with a URL containing double slashes (e.g., https://domain//#Admin), the Slim router processes this malformed URI. If the web server (e.g., Apache, Nginx) does not normalize the URI by stripping the double slash, the router's cache becomes corrupted. This corrupted cache prevents the application from routing any requests correctly, effectively making the entire instance unusable.
The root cause is a lack of input validation on the request URI before it is used to generate the router cache. The fix in version 9.1.7 sanitizes the URI by removing double slashes before the cache is built.
Vulnerable vs. Patched Code
Vulnerable Code (<= 9.1.6): The vulnerable code likely resides in the Slim router initialization or cache generation logic. A simplified representation:
// Vulnerable: Directly uses the request URI without sanitization
$uri = $request->getUri();
$cacheKey = md5($uri);
// ... cache is generated using $cacheKey
Patched Code (>= 9.1.7): The patched code sanitizes the URI before using it:
// Patched: Sanitize the URI to remove double slashes
$uri = $request->getUri();
$uri = preg_replace('#/+#', '/', $uri); // Replace multiple slashes with one
$cacheKey = md5($uri);
// ... cache is generated using $cacheKey
Exploitation & Lab Setup
Red Team (Attack Simulation)
Prerequisites:
- A vulnerable EspoCRM instance (version <= 9.1.6).
- A web server that does not normalize double slashes (e.g., default Apache or Nginx configuration).
Exploitation Steps:
- Craft a malicious URL with double slashes:
https://target-espocrm.com//#Admin - Send this URL to a victim (e.g., via email, social engineering).
- When the victim clicks the link and loads the page, the Slim router cache becomes corrupted.
- The EspoCRM instance becomes unusable for all users until an administrator performs a rebuild.
Proof of Concept (PoC):
# Simple curl command to trigger the vulnerability
curl -k "https://target-espocrm.com//#Admin"
Blue Team (Defense & Detection)
Detection:
- Monitor web server logs for requests containing double slashes (
//) in the URI path. - Alert on any sudden increase in 500 Internal Server Errors from the EspoCRM application.
- Monitor for "Rebuild" actions in the EspoCRM admin logs, as this is the only recovery method.
Mitigation:
- Upgrade to EspoCRM version 9.1.7 or later.
- As a temporary workaround, configure the web server to normalize URIs by stripping double slashes. For example, in Apache:
RewriteEngine On RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ RewriteRule . %1/%2 [R=301,L] - In Nginx:
location / { rewrite ^(.*)//(.*)$ $1/$2 permanent; }
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP requests with double slashes in the URI path (e.g.,
GET //#Admin HTTP/1.1). - Repeated 500 Internal Server Error responses from the EspoCRM application.
- HTTP requests with double slashes in the URI path (e.g.,
- System IOCs:
- Corrupted Slim router cache files in the EspoCRM data directory (e.g.,
data/cache/). - Application logs showing "Slim Application Error" or "Route cache corruption" messages.
- Corrupted Slim router cache files in the EspoCRM data directory (e.g.,
Detection Engineering
YARA Rule
rule CVE_2025_52892_EspoCRM_DoubleSlash {
meta:
description = "Detects requests with double slashes targeting EspoCRM"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-52892"
strings:
$double_slash = "//"
$espocrm_path = "/api/v1/" or "/#"
condition:
$double_slash and $espocrm_path
}
Sigma Rule
title: CVE-2025-52892 - EspoCRM Double Slash DoS
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects HTTP requests with double slashes targeting EspoCRM
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache or nginx
detection:
selection:
cs-uri-query|contains: "//"
cs-uri-stem|contains: "/api/v1/" or "/#"
condition: selection
falsepositives:
- Legitimate use of double slashes in some rare cases
level: medium
Suricata Rule
alert http any any -> $HOME_NET any (
msg:"CVE-2025-52892 - EspoCRM Double Slash DoS Attempt";
flow:to_server,established;
content:"//"; http_uri;
content:"/api/v1/"; http_uri; nocase;
sid:10000001;
rev:1;
reference:cve,2025-52892;
classtype:attempted-dos;
)
Remediation & Mitigation
Immediate Actions:
- Upgrade: Update EspoCRM to version 9.1.7 or later immediately.
- Web Server Configuration: If upgrade is not possible, configure the web server to normalize URIs by stripping double slashes (see Blue Team section above).
- Monitor: Enable logging and monitoring for double slash requests and 500 errors.
Long-Term Actions:
- Input Validation: Implement strict input validation on all user-supplied data, including URIs.
- Security Testing: Include fuzzing of URI paths in your security testing pipeline.
- Patch Management: Establish a process for timely application of security patches.
Workaround: If upgrading is not immediately possible, the web server rewrite rules provided in the Blue Team section can serve as a temporary mitigation.
Valters IT
Securing Digital Frontiers