ZTNET is a ZeroTier web UI for private controllers with multiuser and organization support. Prior to 0.8.0, any authenticated low-privilege user can permanently deactivate another account, including an administrator, through `POST /api/auth/user/invalidateUser`. In `src/pages/api/auth/user/invalidateUser.ts`, `getServerSession` checks only that a session exists and does not compare `session.user.id` with the client-supplied `userId`. Supplying a victim's `userId` and a `deviceId` for which no matching pair exists in `UserDevice` makes the handler set the target account's `isActive` to false. Login is then refused by `src/server/auth.ts` with `account-expired`. An attacker needs only a normal authenticated account and the victim's user ID, which may be obtainable from member lists, UI responses, logs, or other application metadata. This can lock administrators out, disrupt organization management, and deny access to any targeted user. This issue is fixed in version 0.8.0.
Fix
Nothing published yet: no patch, vendor advisory or mitigation reference on NVD, no vendor advisory in the News for this CVE, not in CISA's KEV, no fixed package version. BaselineWatch does not guess at one.
Change history 1
- First seenCVSS 8.1 · sinamicsNVD modified 2026-10-30 20:54
Affected (CPE criteria) 0
NVD has not attached CPE configurations yet.
References 4
- https://github.com/sinamics/ztnet/security/advisories/GHSA-vqfc-cmp9-c33q x_refsource_confirm
- https://github.com/sinamics/ztnet/pull/941 x_refsource_misc
- https://github.com/sinamics/ztnet/commit/7966af6e62aa5778d3a698cee97053fdcb07d742 x_refsource_misc
- https://github.com/sinamics/ztnet/releases/tag/v0.8.0 x_refsource_misc