Summary
Craft CMS: Arbitrary user password reset leading to administrator account takeover
Advisory details
The vulnerability allows any authenticated user to change their own password without providing the current password or having an active elevated session. It also allows the attacker to change other users’ passwords if the attacker’s account has edit users permission (which doesn’t allow changing others’ passwords) and lacks Administrate users permission (which is required to change others’ passwords).
The vulnerability exists in the elements/save action when saving a User element. The UserPasswordValidator applies only a safe validator to the newPassword field without an on scenario restriction. This makes newPassword mass-assignable during the generic element save flow, completely bypassing the dedicated users/set-password action that enforces elevated session verification.
An attacker with any authenticated session (whether it’s hijacked or a normal / low-privileged user) can change their own password, and potentially take over administrator accounts.
Required Permissions
- Access the control panel
- Edit users (needed for the account takeover attack scenario)
Impact
- Any authenticated user can change their own password without providing their current password.
- Users with Edit users permission can change any user’s password, including administrators.
References
Related vulnerabilities
All Supply chain →- HIGHCVE-2026-55212
Pimcore: Insufficient Permission Check on Class Definition Creation Endpoint Allows Privilege Escalation
- MEDIUMCVE-2026-55547
Yamcs's Missing Authorization on Role and Privilege Enumeration Endpoints Allows Any Authenticated User to Disclose Full Security Configuration
- HIGHCVE-2026-55065
Vikunja vulnerable to Improper Authorization and Authorization Bypass Through User-Controlled Key
- MEDIUMCVE-2026-54766
Vikunja has a project duplication bypasses write-permission check on the target parent project
- HIGHCVE-2026-55571
djust authentication bypass: a login_required / on_mount LiveView mount redirect does not close the WebSocket, allowing an unauthenticated client to dispatch event-handler calls
- MEDIUMCVE-2026-54624
django CMS: Structure endpoint bypasses page-view permission