Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged user
-
ExploitSend PUT to /api/v1/user/api-keys/:id with userId field
-
ExecutionMass assignment rebinds API key to victim id
-
ImpactAct as victim to modify profiles, publish or delete content
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V4 - API and Web Service Object attribute protection
|
| Exploitation Conditions | Requires a valid authenticated low-privileged DoraCMS account (PR:L) with an existing API key on versions through 3.1.0; the attacker issues a PUT to /api/v1/user/api-keys/:id for a key they own and includes a userId field whose value is the victim's user id. No non-default configuration is needed - the pre-patch updateApiKey copied the entire request body (including userId/key/secret) into the update, so default deployments are affected. Limiting factors: the attacker must be authenticated and must know or obtain the target victim's user id; there is no availability impact and no unauthenticated path. The patch neutralizes this by writing only an explicit allow-list of fields, so updating is the effective fix per the vendor commit. |
| Impact | This is a genuine near-term priority, though not an emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) describes a network-reachable, low-complexity attack needing only a low-privileged authenticated account and no user interaction, with high confidentiality and integrity impact (VC:H/VI:H) and no availability impact - consistent with an account-takeover/mass-assignment flaw. The source-code diff independently confirms the mechanism: the pre-patch updateApiKey spread the entire request body into updateData, so a client-supplied userId overwrote key ownership. Signals partially align and partially are absent: the vuln.today Decision label is 'this_week' and the vendor patch is available, but there is NO CISA KEV listing and NO EPSS score in the input, so exploitation-probability cannot be quantified here. The exploit reference is a PoC link only and is not verified as working exploit code, so this should not be treated as confirmed active exploitation. Net: a real, easily-exploitable privilege/integrity bug that any authenticated user can trigger, warranting prompt patching, but current evidence points to opportunistic/targeted rather than confirmed mass exploitation. |
| Exploit ScenarioDerived | A low-privileged but authenticated DoraCMS user sends a crafted PUT request to /api/v1/user/api-keys/:id for their own API key, adding a userId field set to a target victim's id. Because the server copied the whole request body into the update, the key is rebound to the victim, and the attacker can then act as that victim to modify profiles and publish or delete content. A public PoC reference exists; it is not verified as working exploit code. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 02, 2026
DoraCMS through 3.1.0 accepts a full request body when updating an API key at PUT /api/v1/user/api-keys/:id, letting any authenticated low-privileged user set the userId field on a key they own to a victim's account id and thereby operate as that victim, including editing profiles and publishing or deleting content. The vendor commit shows the pre-patch service spread the entire submitted object into the database update, so default deployments are exposed to any logged-in account that holds an API key and can obtain the target user id; no availability impact or unauthenticated path was identified. Severity is high (CVSS 4.0 base 8.6; independently assessed as CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N), no CISA KEV entry exists, but a public PoC reference is published at vul.yulun.ac.cn and is not verified as working exploit code.
RemediationAI
Vendor-released patch: upstream commit ede38eb06e0becbee9f19190ebf3ada90a369eb0 (https://github.com/doramart/DoraCMS/commit/ede38eb06e0becbee9f19190ebf3ada90a369eb0) - a specific tagged release version containing this commit is not stated in the supplied data, so confirm the patched build with the vendor or the VulnCheck advisory (https://www.vulncheck.com/advisories/doracms-through-3.1.0-mass-assignment-via-api-key-update-endpoint) before deploying. Applying the commit is the effective fix: it replaces the wholesale body spread with a fixed allow-list of mutable fields (name, permissions, ipWhitelist, rateLimit, expiresAt), discards userId, key, secret and status, and short-circuits writes where only protected fields are submitted. The available sources document no configuration-level workaround; because exploitation requires only a normal authenticated account plus a known victim user id, prioritize upgrading any DoraCMS 3.1.0-or-earlier instance that exposes user API key management, and until patched treat API key ownership as untrusted - audit api-keys records for userId values that do not correspond to the account that created them, and review profile, content publish and delete activity attributed to API key holders. After upgrading, invalidate and reissue any API keys whose ownership may have been rebound, since the vulnerable write also allowed key and secret material to be replaced.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
DoraCMS is a Node.js content management system built on the Egg.js service/repository pattern; the affected logic lives in server/app/service/apiKey.js, where the class extends Egg's Service and delegates persistence to a repository layer. The root cause is CWE-915 (Improperly Controlled Modification of Dynamically-Determined Object Attributes): the update path constructed its payload with a spread of the client-supplied object ({...data, updatedAt: new Date()}), so every field the caller sent - including ownership (userId) and credential material (key, secret) and status - reached the repository update rather than only the editable settings. Because the service only scoped the lookup to the caller's own key id and never filtered the body, the integrity of the ownership relation was attacker-controlled. The upstream fix replaces the spread with an explicit allow-list loop over name, permissions, ipWhitelist, rateLimit and expiresAt, returns the unchanged record when only protected fields are submitted, and adds a regression test verifying that userId, key and secret are discarded while ownership and credentials remain intact.
Know when Doracms 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:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Network endpoint, trivial request (AC:L), requires an authenticated low-privileged account (PR:L), no user interaction; high confidentiality and integrity from acting as the victim, no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
DoraCMS through 3.1.0 contains a mass assignment vulnerability in the PUT /api/v1/user/api-keys/:id endpoint that allows authenticated low-privileged users to rebind their API key to another user's account. Attackers can set the userId field on their own key to a victim's id, then act as that victim to modify profiles and publish or delete content.
Technical POC Analysis
CWE-915 (improperly controlled modification of dynamically determined object attributes), classic mass assignment in the API key update path.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
DoraCMS, a content management system, contains a high-severity vulnerability (CVE-2026-120448) that allows any authenticated low-privileged user to impersonate other users, including administrators, by manipulating the userId field during API key updates. This could enable unauthorized profile edits, content publishing, or deletion, undermining the integrity of the platform and potentially leading to data breaches or reputational damage. Leadership should prioritize remediation as the vulnerability affects all default deployments and requires only a valid account with an API key.
Apply vendor patch.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
DoraCMS v2.1.8 was discovered to re-use the same code for verification of valid usernames and passwords. Rated critical
DoraCMS v2.18 and earlier allows attackers to bypass login authentication via a crafted HTTP request. Rated critical sev
DoraCMS 3.0.x Email API endpoint /api/v1/mail/send contains an authentication bypass vulnerability that allows unauthent
An arbitrary file upload vulnerability in DoraCMS v2.1.8 allow attackers to execute arbitrary code via uploading a craft
Multiple cross-site scripting (XSS) vulnerabilities in /api/content/addOne in DoraCMS v2.0.3 allow remote attackers to i
Cross Site Scripting vulnerability in DOraCMS v.2.18 and before allows a remote attacker to execute arbitrary code via t
A stored cross-site scripting (XSS) vulnerability in the component /admin/contenttemp of DoraCMS v2.1.8 allows attackers
DoraCMS 3.0.x contains a path traversal vulnerability in the createFileBypath function that allows authenticated attacke
EUVD-2026-115208
GHSA-x998-w6fg-m92w
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB