Skip to main content

DoraCMS CVE-2026-120448

| EUVDEUVD-2026-115208 HIGH
Improperly Controlled Modification of Dynamically-Determined Object Attributes (CWE-915)
2026-11-02 VulnCheck GHSA-x998-w6fg-m92w
8.6
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-privileged user
  2. Exploit
    Send PUT to /api/v1/user/api-keys/:id with userId field
  3. Execution
    Mass assignment rebinds API key to victim id
  4. Impact
    Act 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

DoraCMS 0 ≤3.1.0

Affected Packages

euvd doracms no fix

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

Vendor (VulnCheck) PRIMARY 8.6 HIGH
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
vuln.today AI 8.1 HIGH

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.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 70% exploitable
Prevalence
Low
niche open-source Node.js CMS, limited enterprise deployment footprint
Exploit
POC
Public exploit code exists
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

63
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +43
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy