ZTNET 許可權繞過漏洞:任何使用者可透過 /api/auth/user/invalidateUser 永久停用任意帳號
CVE-2026-62967 - ZTNET privilege bypass: any user can deactivate arbitrary accounts via /api/auth/user/invalidateUser
ZTNET 的 ZeroTier Web UI 在 0.8.0 之前存在許可權繞過漏洞,任何低許可權使用者均可透過 POST /api/auth/user/invalidateUser 永久停用任意帳號,包括管理員。
此漏洞可使低許可權使用者永久停用任意帳號,建議即時升級至 0.8.0 以防止管理層被鎖定。
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.
Impact
Affected Products
The following products are affected by CVE-2026-62967
vulnerability.
Even if cvefeed.io is aware of the exact versions of the
products
that
are
affected, the information is not represented in the table below.
No affected product recoded yet
The Common Vulnerability Scoring System is a standardized framework for assessing the severity of vulnerabilities in software and systems. We collect and displays CVSS scores from various sources for each CVE.
| Score | Version | Severity | Vector | Exploitability Score | Impact Score | Source |
|---|---|---|---|---|---|---|
| CVSS 3.1 | HIGH | [email protected] |
Update ZeroTier web UI to version 0.8.0 or later to fix account deactivation vulnerability.
- Update ZeroTier web UI to version 0.8.0.
- Ensure the user ID is validated before deactivation.
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2026-62967.
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2026-62967 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2026-62967
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2026-62967 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2026-62967 vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
New CVE Received by [email protected]
十月. 30, 2026
Action Type Old Value New Value Added Description 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. Added CVSS V3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H Added CWE CWE-862 Added Affected New affected value received. <a href="https://github.com/CVEProject/cvelistV5/blob/main/cves/2026/62xxx/CVE-2026-62967.json">CVE-2026-62967</a> Added Reference https://github.com/sinamics/ztnet/commit/7966af6e62aa5778d3a698cee97053fdcb07d742 Added Reference https://github.com/sinamics/ztnet/pull/941 Added Reference https://github.com/sinamics/ztnet/releases/tag/v0.8.0 Added Reference https://github.com/sinamics/ztnet/security/advisories/GHSA-vqfc-cmp9-c33q
EPSS is a daily estimate of the probability of exploitation activity being observed over the next 30 days. Following chart shows the EPSS score history of the vulnerability.