CVE-2026-62967CWE-862broken-access-control

ZTNET privilege bypass: any user can deactivate arbitrary accounts via /api/auth/user/invalidateUser

High · published October 30, 2026

CVSS v3.1
8.1
EPSS
—
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
8.1 · HIGH
Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
CVSS v4.0
Not supplied
EPSS
Not scored
Weakness
CWE-862 · Missing Authorization
Published
2026-10-30T20:54Z
Timeline
  • 30 OCT 20:54Z
    ZTNET privilege bypass: any user can deactivate arbitrary accounts via /api/auth/user/invalidateUser
    cvelistv5
  • 30 OCT 20:54Z
    ZTNET privilege bypass: any user can deactivate arbitrary accounts via /api/auth/user/invalidateUser
    cvelistv5