Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege user
-
DeliverySend user-attribute update with role/isAdmin fields
-
ExploitEndpoint fails to strip privileged fields
-
ExecutionEscalate to administrator privileges
-
ImpactControl CMS content and accounts
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Access control enforcement
MITRE ATT&CK
1 technique across 1 tactic: Defense Evasion The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated low-privilege account (PR:L) that can reach the User Attribute Update Endpoint at src/routes/api/[...path]/+server.ts on a SveltyCMS 0.0.6 instance; the attack works remotely over the network with no user interaction. The specific precondition is that the endpoint accepted privileged attributes (role/isAdmin/roleIds/permissions) from a client-supplied profile update body and did not restrict non-admins to updating only their own record. Limiting factors: the attacker must already possess valid credentials, and the product is a pre-release version with essentially no production deployment; there is no unauthenticated path. |
| Impact | This is a genuine authorization flaw (CWE-284) but its real-world priority is low, driven almost entirely by the affected product rather than the bug class. The vendor/VulDB CVSS 4.0 vector is 5.3 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L) - network-reachable, low complexity, but requiring low-privilege authentication and rated only limited impact across confidentiality/integrity/availability. The source-code evidence tells a more serious story than the 'limited' impact suggests: the patch and the added AGENTS.md hardening rules ('Never accept role/isAdmin/permissions/lockout/2FA secrets from client profile bodies... Non-admins may only update self') indicate the User Attribute Update Endpoint accepted privileged fields via mass-assignment, meaning a non-admin could potentially set isAdmin/role/permissions and escalate to full administrator - which would justify HIGH impact, not the LOW the vendor assigned. This is a conflict worth noting: vendor scored VC:L/VI:L/VA:L, but the fix strips role/isAdmin/roleIds/permissions and adds an allowPrivilegeEscalation fail-closed guard, consistent with privilege escalation. No EPSS score, no CISA KEV listing, and no public exploit were provided; VulDB is the sole reporting source. Netting these signals: the technical severity may be understated, but exploitation requires an existing authenticated account on a specific pre-release CMS with negligible deployment, so this is not a widespread emergency - patch on normal cadence. |
| Exploit ScenarioDerived | An attacker who holds any low-privilege authenticated account on a SveltyCMS 0.0.6 instance sends a crafted profile/user-attribute update request to src/routes/api/[...path]/+server.ts including privileged fields (e.g. role, isAdmin, permissions) that the endpoint failed to strip. Because non-admin updates were not restricted to self and privileged fields were accepted from the client body, the attacker escalates their own privileges toward administrator. No public exploit code was identified, but the fix commit and its accompanying security notes clearly describe the mass-assignment/privilege-field acceptance being closed. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 18, 2026
Improper access control in SveltyCMS 0.0.6 allows an authenticated low-privilege user to submit privileged attributes such as role, isAdmin, roleIds, or permissions through the User Attribute Update Endpoint at src/routes/api/[...path]/+server.ts and thereby alter account privileges. The flaw is remotely reachable with no user interaction and, per the independent assessment, has high confidentiality, integrity, and availability impact, though exploitation requires valid low-privilege credentials and the product is a pre-release CMS with essentially no production deployment. No public exploit code was identified at time of analysis and CISA KEV does not list this CVE; an upstream fix is available as commit 05b4f9efeb79e9d72a693232334d7529687f896f, but a tagged release containing it is not independently confirmed.
RemediationAI
Apply the upstream fix commit 05b4f9efeb79e9d72a693232334d7529687f896f from the SveltyCMS GitHub repository; no tagged patched version is identified in the available data, so verify whether your deployment includes that commit or a release built after it. The commit enforces sanitizeClientUserAttributePatch and stripPrivilegedUserFields on user-facing update paths, makes updateUserAttributes strip role/isAdmin/roleIds/permissions unless allowPrivilegeEscalation is explicitly enabled for admin/testing, and requires non-admins to update only their own record. If immediate patching is not possible, disable or block the User Attribute Update Endpoint and PUT/PATCH /api/user/:id for non-admin roles at the reverse proxy or route layer, and add server-side validation rejecting client-supplied role, isAdmin, roleIds, and permissions on every profile update path; the trade-off is loss of self-service profile editing unless an admin-mediated workflow is provided. Monitor the VulDB references at https://vuldb.com/vuln/407421 and the commit at https://github.com/SveltyCMS/SveltyCMS/commit/05b4f9efeb79e9d72a693232334d7529687f896f for updated release information.
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
CVE-2026-93504 is rooted in CWE-284, Improper Access Control, within SveltyCMS's User Attribute Update Endpoint implemented as a SvelteKit server route at src/routes/api/[...path]/+server.ts. The vulnerable logic accepted a client-supplied profile update body and did not adequately strip privileged user fields (role, isAdmin, roleIds, permissions) or enforce that non-admin users may update only their own record. The CPE cpe:2.3:a:n/a:sveltycms:*:*:*:*:*:*:*:* identifies SveltyCMS broadly, while ENISA EUVD ties the issue to version 0.0.6. The referenced fix commit adds guidance to use sanitizeClientUserAttributePatch and stripPrivilegedUserFields on every user-facing update path, makes updateUserAttributes strip role/isAdmin/roleIds/permissions unless an explicit allowPrivilegeEscalation admin/testing flag is set, and relies on server-side authorization for self-only updates; this confirms the root cause is missing or incorrect authorization policy rather than a memory-safety or injection flaw. Attackers need to reach the endpoint remotely with valid low-privilege authentication, consistent with the assessed CVSS 3.1 vector AV:N/AC:L/PR:L/UI:N and high C/I/A impacts.
Know when Sveltycms 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:L/VI:L/VA:L/SC:N/SI:N/SA:N
Authenticated low-priv user (PR:L) can mass-assign privileged fields to reach administrator, so escalation yields high C/I/A; same-app authority keeps S:U.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
DescriptionCVE.org
A vulnerability has been found in SveltyCMS 0.0.6. This affects an unknown part of the file src/routes/api/[...path]/+server.ts of the component User Attribute Update Endpoint. Such manipulation leads to improper access controls. It is possible to launch the attack remotely. The name of the patch is 05b4f9efeb79e9d72a693232334d7529687f896f. It is advisable to implement a patch to correct this issue.
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
Server-side request forgery in SveltyCMS 0.0.6 lets an authenticated, low-privileged user (CVSS PR:L, confirmed in both
Stored cross-site scripting in SveltyCMS 0.0.6 allows an authenticated user who can upload media to plant a malicious SV
EUVD-2026-82904
GHSA-wfgj-cv78-jfxc
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB