Live › vulnerability › CVE-2026-62967
ZTNET's account-invalidation endpoint does not check that the caller owns the user ID it deactivates. Any authenticated low-privilege user can permanently disable another account, including an administrator's, and that account is then refused login.
Summary written from the sources below. Check the originals before acting.
First seen by InfraStack 2026-10-30 21:25 UTC. All times on this page are UTC.
Any team running a self-hosted ZTNET instance below 0.8.0 with more than one user account is exposed, because any logged-in account can disable others. Single-user instances where only the owner has an account have little practical exposure. Deployments already on 0.8.0 or later are not affected.
No product ranges from the sources yet.
0.8.0src/pages/api/auth/user/invalidateUser.ts in the deployed code and see whether it compares session.user.id with the request userId0.8.0 or laterEach row is the first time that source carried this signal. The analyst’s rows are its own findings.
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.
This page as .md · .json · in your agent: get_signal("CVE-2026-62967")
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.