Skip to main content

ZTNET EUVDEUVD-2026-114470

| CVE-2026-62967 HIGH
Missing Authorization (CWE-862)
2026-10-30 GitHub_M
8.1
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with normal low-privilege account
  2. Delivery
    Harvest victim/admin userId from member list or UI
  3. Exploit
    POST invalidateUser with victim userId + bogus deviceId
  4. Execution
    Handler takes no-device branch and sets isActive=false
  5. Impact
    Victim admin locked out, org management denied

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires (1) a valid authenticated ZTNET account of any privilege level - the attacker uses their own normal session, so deployments that allow open self-registration are directly exposed while closed/admin-approved registration raises the bar; and (2) knowledge of the target's userId, which the advisory notes can be gleaned from member lists, UI responses, logs, or other application metadata. The specific trigger is supplying the victim's userId together with a deviceId that has no matching row in the UserDevice table, which forces the handler into the branch that sets the target's isActive=false. Limiting factors: affects only ZTNET <= 0.7.18 (fixed in 0.8.0); no confidentiality exposure and no code execution - impact is limited to deactivating accounts/denial of login; no user interaction is required from the victim.

Impact

Signals mostly align toward a genuine but bounded priority. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N) describes a network-reachable, low-complexity flaw requiring a low-privilege authenticated account - matching CWE-862 (missing authorization): the handler calls getServerSession/getSession to confirm a session exists but never compares session.user.id to the client-supplied userId. The real-world impact is denial of service / account takeover-level lockout, not confidentiality loss (C:N), so despite the 8.1 score this is a DoS/integrity issue rather than code execution or data theft. There is NO CISA KEV entry and NO EPSS score in the supplied data, so exploitation-in-the-wild and statistical exploitation probability are both unknown and must not be assumed; however a detailed public proof-of-concept exists in the GHSA advisory and was confirmed dynamically on v0.7.18, so the barrier to exploitation is low for anyone who can obtain an account. No SSVC exploitation/automatable/technical-impact decision tree was provided - only the vuln.today 'this_week' priority label, which is consistent with 'patch within the week' rather than emergency. Net: for any multi-user or organization ZTNET instance where untrusted users can register, this is a real near-term priority because any normal user can permanently lock out administrators; for single-admin or closed-registration deployments the practical risk is much lower because the attacker must first hold a valid account.

Exploit ScenarioDerived

A low-privilege user who already holds (or can self-register) a normal ZTNET account logs in to obtain a session cookie, learns an administrator's user ID from a member list or UI response, and sends a single POST to /api/auth/user/invalidateUser with the victim's userId and a random non-existent deviceId. Because the (userId, deviceId) pair is not found in UserDevice, the handler sets the admin's isActive to false, and that admin can no longer log in (rejected as account-expired). A working step-by-step PoC is published in the GHSA advisory and was confirmed dynamically against v0.7.18; the network vector and low attack complexity make the request trivial to replay.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 30, 2026

ZTNET through 0.7.18 allows any authenticated low-privilege user to deactivate another account, including an administrator, by submitting a victim's userId together with a deviceId that has no matching UserDevice row to POST /api/auth/user/invalidateUser; the handler then sets isActive=false and the victim's login is refused with account-expired. The root cause is a missing authorization check (CWE-862) in a Next.js API route, so impact is confined to account availability and administrative disruption, with no confidentiality exposure or code execution. A public proof-of-concept procedure confirmed against v0.7.18 is published in the vendor advisory, and the issue is fixed in 0.8.0; no CISA KEV entry is associated with this CVE.

RemediationAI

Vendor-released patch: upgrade to ZTNET 0.8.0 (https://github.com/sinamics/ztnet/releases/tag/v0.8.0), which is the version the advisory names as fixed. The upstream fix is PR #941 (https://github.com/sinamics/ztnet/pull/941), which deletes src/pages/api/auth/user/invalidateUser.ts entirely, and the corresponding commit is 7966af6e62aa5778d3a698cee97053fdcb07d742; the advisory is GHSA-vqfc-cmp9-c33q. No vendor-documented workaround exists for 0.7.18, so organizations that cannot upgrade immediately should reduce the pool of accounts able to reach the endpoint - if open self-registration is enabled, disable it or require administrator approval, since the attack needs only a normal authenticated session and a victim userId, which the advisory notes may be exposed in member lists, UI responses, logs, or other application metadata. Accounts already locked out can be restored only by setting isActive back to true for the affected user, which requires database or administrative access rather than user self-service. Removal of the endpoint in 0.8.0 is the only complete fix; blocking the route at a reverse proxy is a stopgap whose side effects depend on whether legitimate device-activity updates rely on it.

Affected VersionsENISA

ztnet < 0.8.0

Affected Packages

euvd ztnet fix: 0.8.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

ZTNET is a Next.js application fronting a ZeroTier private controller, using better-auth for sessions and Prisma for persistence. The vulnerable route, src/pages/api/auth/user/invalidateUser.ts, calls auth.api.getSession and only verifies that a session exists; it never compares session.user.id with the userId supplied in the request body. It then performs a Prisma userDevice.findUnique lookup on the composite (userId, deviceId) key and, in an inverted branch, treats a missing pairing as a reason to run prisma.user.update setting isActive=false on the client-supplied userId rather than merely failing or updating lastActive. Because src/server/auth.ts refuses login when user.isActive is false, the target is locked out with an account-expired error. This is CWE-862 Missing Authorization: an authenticated function lacks an ownership/role check on the object identifier it acts upon. The supplied CPE, cpe:2.3:a:sinamics:ztnet:*:*:*:*:*:*:*:*, is version-wildcarded, but the advisory and release metadata bound the issue to releases up to and including 0.7.18, fixed in 0.8.0. The 8.1 vendor score reflects High integrity impact; the independent assessment rates integrity as Low because the state change is a single account flag rather than modification of application data, while availability remains High.

Know when Ztnet gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 8.1 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
vuln.today AI 7.1 HIGH

Network API, trivial single request (AC:L) needing any authenticated account (PR:L); no data read (C:N), only one flag flipped (I:L), but full account/admin lockout (A:H). NVD rated I:H.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Oct 30, 2026 - 22:03 EUVD
CVE Published
Oct 30, 2026 - 20:54 cve.org
HIGH 8.1

DescriptionCVE.org

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.

Technical POC Analysis

CWE-862 (Missing Authorization) in a Next.js API route: src/pages/api/auth/user/invalidateUser.ts.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

ZTNET, a zero-trust networking platform, contains a high-severity authorization flaw (CVE-2026-62967) enabling any authenticated low-privilege user to deactivate administrator accounts, causing operational disruption and lockout of critical personnel. While no data breach or code execution is possible, the potential for administrative denial-of-service warrants immediate remediation to prevent insider misuse or lateral abuse of valid credentials.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 69% exploitable
Prevalence
Low
niche self-hosted open-source ZeroTier controller web UI
Data Quality
3 sources
Confidence: Low

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Medium

Priority Score

40
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +40
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy