CVE-2026-96627: CWE-266: Incorrect Privilege Assignment in getarcaneapp arcane
Description
## Summary A user holding the delegated `users:update` permission can reset the global administrator's password and take over the admin account. `UpdateUser` sets the target user's `PasswordHash` from the request body for ANY target with no comparison of caller-vs-target privilege. Because role assignment and role CRUD are deliberately gated by `RequireGlobalAdmin`, `users:update` is intended to sit BELOW admin (profile management); this finding defeats that separation. ## Root Cause `UpdateUser` (handler `backend/api/handlers/users.go:317-323`) loads the target by ID and sets `userModel.PasswordHash` from the request body for any user, then `userService.UpdateUser` (`user_service.go:174`) simply `tx.Save`s — with NO actor-vs-target privilege comparison. The only `IsGlobalAdmin` guard (`user_service.go:345`) is a last-admin check inside `DeleteUser`, not the update path. Role assignment / role CRUD are `RequireGlobalAdmin` (`backend/pkg/authz/permissions.go:27-33`), proving `users:update` is intended below admin. ## Impact Complete administrator account takeover (C:H/I:H/A:H) by any holder of the delegated `users:update` permission. ## Proof of Concept 1. Admin delegates a custom "User Manager" role with `users:update`. 2. `PUT /users/{adminId}` with `{"password":"attacker123"}`. 3. `POST /auth/login {"username":"arcane","password":"attacker123"}` → admin session. ## Attack Chain 1. Action: admin delegates custom role with `users:update`. Guard: role creation is `RequireGlobalAdmin`. Bypass: intended delegation (holder is meant to manage profiles, not seize admin). 2. Action: `PUT /users/{adminId}` `{"password":"attacker123"}`. Guard: `RequirePermission(users:update)` (`users.go:154`). Bypass: holder has it; no hierarchy check (`users.go:317-323`, `user_service.go:174` unconditional Save). 3. Action: `POST /auth/login` as admin → admin session. ## Bypass Evidence - `users.go:317-323` sets `PasswordHash` for any target; `user_service.go:174-194` has no actor/target privilege comparison. - Only `IsGlobalAdmin` hits are `DeleteUser`'s last-admin guard and DTO flags (grep). - `users:update` is org-level, held by no built-in non-admin role (`permissions.go:24`). ## Affected Versions `<= 2.5.0`. Reported by **zx (Jace)** — GitHub: @manus-use
CVSS v3.1
Score 8.8high
Affected software
getarcaneapp
arcane
pkg:github/getarcaneapp/arcaneRun on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
Arcane, an interface for managing Docker resources, has a vulnerability (CVE-2026-96627) due to improper privilege assignment in the UpdateUser function located in backend/api/handlers/users.go. Before version 2.6.0, the function sets PasswordHash for any target user without verifying if the caller has sufficient privileges over the target. Consequently, an attacker with delegated users:update permission can change the global administrator's password, resulting in full administrator account compromise. This vulnerability is classified under CWE-266 (Incorrect Privilege Assignment) and CWE-269 (Improper Privilege Management). The flaw is fixed in Arcane version 2.6.0.
Potential Impact
An attacker with delegated users:update permission can reset the global administrator password, enabling full authentication as the administrator. This leads to complete compromise of the global administrator account, with high confidentiality, integrity, and availability impact as reflected by the CVSS score of 8.8.
Mitigation Recommendations
Upgrade Arcane to version 2.6.0 or later, where the privilege assignment issue in UpdateUser has been fixed. No other mitigations are indicated by the vendor advisory.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-09-23T14:35:50.129Z
- Cvss Version
- 3.1
- State
- PUBLISHED
Threat ID: 6ad2989d2cdf04f6563b31ee
Added to database: 10/16/2026, 21:35:25 UTC
Last enriched: 10/16/2026, 21:48:15 UTC
Last updated: 10/16/2026, 23:10:29 UTC
Views: 7
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.