CVE-2023-54403
Executive Summary
CVE-2023-54403 is a path traversal (arbitrary file read) vulnerability in Yonyou U8 CRM affecting versions before V16.5 and the V18 line. The flaw resides in the /ajax/getemaildata.php endpoint, which can be reached without authentication by supplying the DontCheckLogin=1 parameter, and which fails to validate the filePath parameter, allowing an attacker to read arbitrary files outside the web root. Because the endpoint is remotely reachable and requires no credentials, the flaw carries a CVSS v3.1 base score of 7.5 (HIGH); exploitation in the wild was first observed by the Shadowserver Foundation on 2023-10-14.
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
Technical Analysis
The vulnerability is an instance of CWE-22, improper limitation of a pathname to a restricted directory. Two distinct weaknesses combine to make this remotely exploitable by unauthenticated attackers:
Authentication bypass on the request path. According to the NVD description, the
/ajax/getemaildata.phpscript honors aDontCheckLogin=1parameter that causes the application to skip its normal session/authentication check. This means the script can be invoked directly by any client that can reach the web server, without a valid session.Unvalidated file path input. The same script accepts a
filePathparameter that is used to locate and return a file but is not constrained to an allowed directory. When the value is not sanitized against traversal sequences, the application will resolve paths relative to (or outside) the web application directory, enabling reads of arbitrary files on the host.
When combined, the attack is simply a crafted HTTP request to the mail-data endpoint carrying the bypass parameter and a traversal path in the file path parameter. The application returns the contents of the requested file in the HTTP response. Because no authentication is required (PR:N), no user interaction is needed (UI:N), and the request is fully network-reachable (AV:N), the attack is cheap to automate and trivially scalable across exposed instances.
The confidentiality impact is rated High (C:H) because the read primitive is not limited to web content — the description explicitly notes that attackers can reach configuration files containing database or service credentials. Integrity and availability impacts are None (I:N/A:N), consistent with a pure read primitive. The scope is Unchanged (S:U).
The endpoint name (getemaildata.php) indicates the script was designed to retrieve email-related data; the traversal flaw makes its file retrieval capability indiscriminate.
Exploitation Scenarios
No public PoC, Nuclei template, or exploit code is available for this CVE. The following attack chain is derived strictly from the vulnerability class and the parameters named in the NVD description; no additional implementation details are assumed.
Reconnaissance / target identification. An attacker enumerates internet-exposed Yonyou U8 CRM deployments. Since the vulnerable script is a web endpoint, identification is done via HTTP fingerprinting of the application and its
/ajax/getemaildata.phppath. No credential is needed at any stage.Triggering the flaw class (path traversal + auth bypass). The attacker sends an HTTP request to the vulnerable script and supplies the two parameters named in the advisory:
DontCheckLogin=1to bypass the login check, and afilePathvalue containing directory traversal so that the resolved path escapes the intended directory. This is the standard CWE-22 mechanism — traversal sequences in a user-controlled path parameter processed without canonicalization or allow-listing.Payload / execution method. The payload is a path string rather than executable code; "execution" is simply the server returning the contents of the resolved file in the HTTP response. The attacker iterates candidate paths until the response contains readable content. Because the response body carries the file contents, exfiltration is in-band.
Post-exploitation impact. With the arbitrary file read primitive, the attacker targets exposed configuration files. Per the description, these may contain database or service credentials. Obtained credentials can be reused to pivot to the backend database or adjacent services, escalating a single-file read into broader compromise of the CRM data. No write or code-execution capability is described, so the immediate impact is data disclosure and credential harvesting that enables lateral movement.
Impact Assessment
Business impact centers on disclosure of data accessible via the file read. The CVSS v3.1 base score is 7.5 (HIGH), with subscores AV:N (reachable over the network), AC:L (no special conditions), PR:N (unauthenticated), UI:N (no user action), S:U (scope unchanged), C:H (high confidentiality impact), and I:N/A:N (no integrity or availability impact).
Affected systems are Yonyou U8 CRM installations below V16.5 and on the V18 line. Blast radius depends on network exposure: any instance reachable from an untrusted network is at risk without credentials. The primary consequence is exposure of files outside the web application directory, notably configuration files holding database or service credentials — which can lead to follow-on compromise of connected databases and services. CISA KEV status is NO and no EPSS score is currently published by FIRST.org, but Shadowserver observed exploitation evidence on 2023-10-14, confirming real-world scanning/exploitation activity rather than purely theoretical risk.
Detection Guidance
Sigma Rule
title: Yonyou U8 CRM Arbitrary File Read via getemaildata.php
id: 3f1a7c4e-9b2d-4c7a-8e10-yonyou54403
status: experimental
description: Detects HTTP requests abusing DontCheckLogin=1 and a traversal-bearing filePath against /ajax/getemaildata.php (CVE-2023-54403).
references:
- https://nvd.nist.gov/vuln/detail/CVE-2023-54403
author: valtersit.com
logsource:
category: webserver
detection:
selection_uri:
cs-method: 'GET'
cs-uri-stem|endswith: '/ajax/getemaildata.php'
selection_bypass:
cs-uri-query|contains: 'DontCheckLogin=1'
selection_traversal:
cs-uri-query|contains:
- 'filePath=../'
- 'filePath=..%2f'
- 'filePath=%2e%2e%2f'
- 'filePath=....//'
condition: selection_uri and selection_bypass and selection_traversal
falsepositives:
- Legitimate internal diagnostics, if any
level: high
YARA Rule
rule CVE_2023_54403_Yonyou_U8CRM_FileRead
{
meta:
description = "Detects exploitation attempts for CVE-2023-54403 (Yonyou U8 CRM arbitrary file read via getemaildata.php)"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2023-54403"
author = "valtersit.com"
date = "2024-01-01"
severity = "high"
strings:
$uri = "/ajax/getemaildata.php" ascii nocase wide
$byp1 = "DontCheckLogin=1" ascii nocase wide
$fp1 = "filePath=" ascii nocase wide
$trav1 = "../" ascii
$trav2 = "..%2f" ascii nocase
$trav3 = "%2e%2e%2f" ascii nocase
condition:
$uri and $byp1 and $fp1 and any of ($trav*)
}
Suricata IDS Rule
alert http any any -> any any (msg:"CVE-2023-54403 Yonyou U8 CRM arbitrary file read attempt (getemaildata.php)"; flow:established,to_server; http.method; content:"GET"; http.uri; content:"/ajax/getemaildata.php"; nocase; http.uri; content:"DontCheckLogin=1"; nocase; http.uri; content:"filePath="; nocase; http.uri; content:".."; nocase; reference:cve,2023-54403; reference:url,nvd.nist.gov/vuln/detail/CVE-2023-54403; classtype:web-application-attack; sid:202354403; rev:1;)
Elastic Detection
network where
http.request.method == "GET" and
stringContains(http.request.path, "/ajax/getemaildata.php") and
stringContains(http.request.query, "DontCheckLogin=1") and
stringContains(http.request.query, "filePath=") and
(stringContains(http.request.query, "../") or stringContains(http.request.query, "..%2f"))
Splunk SPL Query
index=web sourcetype=access_combined OR sourcetype=nginx OR sourcetype=iis
| eval uri = coalesce(uri, cs_uri_stem, request)
| eval qs = coalesce(uri_query, cs_uri_query, "")
| where match(uri, "(?i)/ajax/getemaildata\.php")
AND match(qs, "DontCheckLogin=1")
AND match(qs, "filePath=")
AND (match(qs, "\.\./") OR match(qs, "\.\.%2f") OR match(qs, "%2e%2e%2f"))
| stats count min(_time) as first_seen max(_time) as last_seen values(src_ip) as sources by uri, qs
| sort - count
Wazuh OSSEC Rule
<group name="web,attack,cve-2023-54403,">
<rule id="100403" level="12">
<if_sid>31100</if_sid>
<id>^200$</id>
<match>getemaildata.php</match>
<regex>DontCheckLogin=1.*filePath=.*(\.\./|\.\.%2f|%2e%2e%2f)</regex>
<description>CVE-2023-54403: Yonyou U8 CRM arbitrary file read attempt via /ajax/getemaildata.php</description>
<mitre>
<id>T1190</id>
</mitre>
<group>attack,cve_2023_54403,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source).
Immediate mitigations:
- Block external access to
/ajax/getemaildata.phpat the perimeter (WAF/reverse proxy) or restrict the path to trusted management networks only. - Deploy virtual patching rules that reject requests where
DontCheckLogin=1is supplied or where thefilePathparameter contains traversal sequences. - Enforce authentication checks on all AJAX endpoints, ensuring parameters such as
DontCheckLogincannot disable login validation. - Isolate the CRM from sensitive backend services; place credential material outside the web-accessible filesystem and rotate any credentials that could be reachable via the file read primitive.
Patch/upgrade steps:
- No vendor patch is currently evidenced for this CVE. Track the Yonyou U8 CRM release notes for a version above the affected V16.5/V18 range and upgrade as soon as a fix is confirmed.
- Until a patch exists, treat the application as vulnerable by default and rely on network-layer mitigation.
Long-term hardening:
- Apply strict allow-listing/canonicalization to any file path parameter so values cannot escape an intended directory (CWE-22 remediation).
- Remove or gate diagnostic/authentication-bypass parameters (
DontCheckLogin-style flags) from production builds. - Run the CRM with least privilege so a file read cannot reach credential stores, and store secrets in a managed secret store rather than config files on disk.
- Monitor Shadowserver and NVD for updated exploitation telemetry and any newly published patch or PoC.
References
- NVD — CVE-2023-54403 detail: https://nvd.nist.gov/vuln/detail/CVE-2023-54403
- MITRE CWE-22 — Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal'): https://cwe.mitre.org/data/definitions/22.html
- MITRE ATT&CK T1190 — Exploit Public-Facing Application: https://attack.mitre.org/techniques/T1190/
- Shadowserver Foundation — exploitation evidence for CVE-2023-54403 first observed 2023-10-14: https://www.shadowserver.org/
- CISA Known Exploited Vulnerabilities Catalog (CVE-2023-54403 not listed — status: NO): https://www.cisa.gov/known-exploited-vulnerabilities-catalog
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.