Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach public password-recovery endpoint
-
ExploitInject SQL via email parameter
-
ExecutionManipulate backend database query
-
ImpactExtract or alter stored data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | No special configuration required - the vulnerable code path is the public password-recovery (find-password) mail endpoint handled by PublicController::sendFindPwdMail, which is reachable by remote unauthenticated attackers (PR:N/UI:N) in default XCMS installations. Exploitation only requires that the password-recovery feature be exposed, which is standard for a CMS login flow. The sole practical limit on exploitation is the product's rarity (very few deployments exist) and, per the vendor's impact rating, the per-request data impact may be partial rather than full database compromise; no authentication, user interaction, or non-default setting is needed. |
| Impact | Signals are mixed and point to a genuine-but-low-priority issue. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) describes an easy, remote, unauthenticated, low-complexity attack with no user interaction, which on its own sounds serious; however the vendor-supplied impact metrics are only partial (VC:L/VI:L/VA:L) and the overall score is a moderate 6.9, reflecting limited per-request impact rather than full database compromise. Exploit maturity is E:P (proof-of-concept), consistent with the POC flag and the public GitHub write-up. There is NO EPSS score provided and the CVE is NOT on the CISA KEV list, so there is no evidence of active or widespread exploitation - only that exploit code exists. The dominant risk-limiting factor is not the vulnerability class (SQL injection, CWE-89, is inherently high-impact) but the product itself: XCMS by jackq is an obscure PHP CMS with negligible enterprise footprint, so real-world attack surface is minimal. Net assessment: a real, trivially-reachable SQLi worth patching for anyone running XCMS, but a low global priority driven by the product's rarity rather than by any mitigating technical control. Note one tension to verify: SQL injection commonly warrants higher confidentiality impact than the VC:L assigned by VulDB - if stacked or UNION queries are possible the true confidentiality impact may exceed the source rating. |
| Exploit ScenarioDerived | A remote, unauthenticated attacker sends a crafted request to the XCMS password-recovery endpoint, placing SQL payload in the 'email' parameter processed by PublicController::sendFindPwdMail. Because the input is concatenated into a SQL query without sanitization, the attacker manipulates the query to read or tamper with database contents. A public proof-of-concept exists (GitHub write-up by wawyw), lowering the skill needed to reproduce the attack. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
SQL injection in the XCMS password-recovery flow (PublicController::sendFindPwdMail in Admin/Home/Controller/PublicController.class.php) allows a remote unauthenticated attacker to inject arbitrary SQL through the 'email' argument, exposing or altering data in the CMS database. The vulnerable endpoint is the standard find-password mail handler, reachable with no authentication and no user interaction (CVSS vector PR:N/UI:N), which is why the independent assessment rates confidentiality impact High while limiting integrity impact to Low under a CVSS:3.1 base vector of AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N. Publicly available exploit code exists (a proof-of-concept writeup is linked from the VulDB record), though the flaw is not confirmed actively exploited (CISA KEV) and risk is tempered by the product's very low deployment footprint; no vendor patch has been identified in the supplied data.
RemediationAI
No vendor-released patch has been identified at time of analysis, and the referenced commit (3fab5342cc509945a7ce1b8ec39d19f701b89261) is the vulnerable project snapshot, not a fix, so no exact upgrade version can be cited. The definitive code-level fix is to rewrite the query in PublicController::sendFindPwdMail using parameterized/prepared statements (PDO or mysqli bind parameters) for the 'email' argument and to validate it as a well-formed address before use, applying the same treatment to any sibling query reusing that input. Until such a fix is published by the maintainer, compensating controls should be layered: disable or remove the public find-password mail endpoint if self-service password recovery is not essential (trade-off: legitimate users lose automated password reset and must be handled administratively), or restrict the endpoint to trusted source ranges or an authenticated reverse proxy (trade-off: breaks remote user self-service recovery); deploy a WAF/virtual-patch rule that blocks SQL metacharacters and boolean/UNION patterns on requests to the password-recovery route (trade-off: signature rules are bypassable via encoding and may generate false positives on unusual but valid email inputs); and reduce blast radius by running the CMS database account with least privilege and disabling stacked queries where the backend permits. Given the product's rarity and apparent lack of maintained releases, decommissioning or replacing XCMS with a supported CMS should be evaluated as the most durable option. Details on the disclosure and exploit writeup are at https://vuldb.com/vuln/416576 and https://github.com/wawyw/cve_report/blob/main/xcms_2.md.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
XCMS is a PHP-based content management system; the affected component is the password-recovery mail endpoint implemented in Admin/Home/Controller/PublicController.class.php. The root cause is CWE-89 (Improper Neutralization of Special Elements used in an SQL Command): the user-supplied 'email' parameter is passed into a database query by PublicController::sendFindPwdMail without proper parameterization, so attacker-controlled SQL syntax reaches the database engine. The CPE entry cpe:2.3:a:jackq:xcms:*:*:*:*:*:*:*:* carries a wildcard version field, indicating the affected build range is not narrowed to a specific release and that all tracked revisions of the product - up to and including the referenced commit 3fab5342cc509945a7ce1b8ec39d19f701b89261 - should be considered exposed unless a maintainer-supplied fix exists. Because the injection sinks into a mail-triggering code path rather than a generic API, the practical data impact per request may be partial, consistent with the vendor-side rating reflected in the mixed-signal risk assessment.
Know when Xcms gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
Remote unauthenticated SQLi on a public endpoint gives AV:N/AC:L/PR:N/UI:N; database read enables C:H, with limited write potential I:L and no availability impact.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
2DescriptionCVE.org
A vulnerability was determined in jackq XCMS up to 3fab5342cc509945a7ce1b8ec39d19f701b89261. Impacted is the function PublicController::sendFindPwdMail of the file Admin/Home/Controller/PublicController.class.php of the component Password Recovery Mail Endpoint. This manipulation of the argument email causes sql injection. Remote exploitation of the attack is possible. The exploit has been publicly disclosed and may be utilized.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
EUVD-2026-97174
GHSA-prc4-c7gg-w62j
NVD
CVE.org
EPSS
VulDB
Exploit-DB