Skip to main content

CVE-2026-96627: CWE-266: Incorrect Privilege Assignment in getarcaneapp arcane

0
High
Published: 10/16/2026 (10/16/2026, 21:15:03 UTC)
Source: CVE Database V5
Vendor/Project: getarcaneapp
Product: 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

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Affected software

getarcaneapp

arcane

Affected versions
<2.6.0
GitHub Actionsmore threats →ai
getarcaneapp/arcane
pkg:github/getarcaneapp/arcane
Affected versions
<2.6.0

Run 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

AILast updated: 10/16/2026, 21:48:15 UTC

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.

Pro Console: star threats, build custom feeds, automate alerts via Slack, email & webhooks.Upgrade to Pro

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 reviews

Crowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.

Sort by
Loading community insights…

Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.

Actions

PRO

Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.

Please log in to the Console to use AI analysis features.

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

Breach by OffSeqOFFSEQFRIENDS — 25% OFF

Check if your credentials are on the dark web

Instant breach scanning across billions of leaked records. Free tier available.

Scan now
OffSeq TrainingCredly Certified

Lead Pen Test Professional

Technical5-day eLearningPECB Accredited
View courses