/

CVE-2026-62967

Severity:

HIGH RISK

(8.1)

Broken Authorization (CWE-862) in ZTNET User Endpoint

CVE-2026-62967

Deferred

Vulnerability type

Category:

Broken Access Control

CWE:

CWE-862

Impact:

Account Lockout and Denial of Service

Severity:

HIGH RISK

(8.1)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

ZTNET contains a broken authorization issue that lets an authenticated low-privilege user deactivate another account through the user invalidation API. If the attacker knows a target user's identifier, the account may be permanently disabled, preventing login and potentially disrupting administrator or organization management.

ZTNET contains a broken authorization issue that lets an authenticated low-privilege user deactivate another account through the user invalidation API. If the attacker knows a target user's identifier, the account may be permanently disabled, preventing login and potentially disrupting administrator or organization management.

Affected context

The issue occurs in ZTNET deployments using the affected user invalidation endpoint when authorization checks confirm only that a session exists. Risk is higher where ordinary users can access member metadata or other responses that reveal user identifiers, and where account deactivation immediately prevents subsequent authentication.

The issue occurs in ZTNET deployments using the affected user invalidation endpoint when authorization checks confirm only that a session exists. Risk is higher where ordinary users can access member metadata or other responses that reveal user identifiers, and where account deactivation immediately prevents subsequent authentication.

Exploit preconditions

  • Attack surface: Authenticated HTTP API for user account invalidation
  • Required access: A normal authenticated ZTNET account
  • Required target data: The victim's user identifier, which may be exposed through member lists, interface responses, logs, or related metadata
  • Trigger point: Processing of a request to POST /api/auth/user/invalidateUser
  • Why exploitation is possible: The handler does not verify that the session owner matches the client-supplied target user, allowing a low-privilege session to affect another account
  • Attack surface: Authenticated HTTP API for user account invalidation
  • Required access: A normal authenticated ZTNET account
  • Required target data: The victim's user identifier, which may be exposed through member lists, interface responses, logs, or related metadata
  • Trigger point: Processing of a request to POST /api/auth/user/invalidateUser
  • Why exploitation is possible: The handler does not verify that the session owner matches the client-supplied target user, allowing a low-privilege session to affect another account

Why this happens

The underlying flaw is a missing object-level authorization check. The endpoint verifies that the requester has an authenticated session but fails to confirm that the requester is permitted to modify the account identified by the supplied userId. This behavior maps to CWE-862: Missing Authorization, because authentication is treated as sufficient access control for a sensitive account-management operation.

The underlying flaw is a missing object-level authorization check. The endpoint verifies that the requester has an authenticated session but fails to confirm that the requester is permitted to modify the account identified by the supplied userId. This behavior maps to CWE-862: Missing Authorization, because authentication is treated as sufficient access control for a sensitive account-management operation.

Potential impact

  • A targeted user may be unable to log in
  • An administrator account could be locked out
  • Organization management may be disrupted
  • Administrative recovery workflows may be required
  • Multiple accounts could be disabled, causing broader service denial
  • A targeted user may be unable to log in
  • An administrator account could be locked out
  • Organization management may be disrupted
  • Administrative recovery workflows may be required
  • Multiple accounts could be disabled, causing broader service denial

General mitigation guidance

Mitigation generally focuses on enforcing authorization at the resource and action level rather than relying only on session existence.

Common defensive patterns include:

  • Permit self-service account actions only when the authenticated subject matches the target identifier
  • Apply explicit role- and organization-aware authorization for administrative account operations
  • Use server-derived identity and ownership data instead of trusting client-supplied account identifiers
  • Require additional confirmation or privileged workflows for irreversible account deactivation
  • Limit exposure of user identifiers and enforce least privilege for account-management APIs
  • Centralize authorization checks and use secure-by-default denial for ambiguous requests

Mitigation generally focuses on enforcing authorization at the resource and action level rather than relying only on session existence.

Common defensive patterns include:

  • Permit self-service account actions only when the authenticated subject matches the target identifier
  • Apply explicit role- and organization-aware authorization for administrative account operations
  • Use server-derived identity and ownership data instead of trusting client-supplied account identifiers
  • Require additional confirmation or privileged workflows for irreversible account deactivation
  • Limit exposure of user identifiers and enforce least privilege for account-management APIs
  • Centralize authorization checks and use secure-by-default denial for ambiguous requests

How teams detect issues like this

Organizations can look for:

  • Static analysis patterns where authenticated session checks are not followed by subject, ownership, or role authorization checks
  • Code review findings involving client-supplied identifiers in account-management endpoints
  • API policy rules requiring object-level authorization for update, delete, disable, and invalidate operations
  • Tests that attempt cross-user actions using low-privilege accounts
  • Audit events showing account deactivation requests where the requester and target differ

Automated security review tools may help identify endpoints that use user-controlled resource identifiers without corresponding authorization enforcement.

Organizations can look for:

  • Static analysis patterns where authenticated session checks are not followed by subject, ownership, or role authorization checks
  • Code review findings involving client-supplied identifiers in account-management endpoints
  • API policy rules requiring object-level authorization for update, delete, disable, and invalidate operations
  • Tests that attempt cross-user actions using low-privilege accounts
  • Audit events showing account deactivation requests where the requester and target differ

Automated security review tools may help identify endpoints that use user-controlled resource identifiers without corresponding authorization enforcement.

Sources

SourceLink
github.comgithub.com/sinamics/ztnet/commit/7966af6e62aa5778d3a698cee97053fdcb07d742
github.comgithub.com/sinamics/ztnet/pull/941
github.comgithub.com/sinamics/ztnet/releases/tag/v0.8.0
github.comgithub.com/sinamics/ztnet/security/advisories/GHSA-vqfc-cmp9-c33q

Frequently asked

questions

No. Exploitation requires a valid authenticated account, but the account may have ordinary rather than administrative privileges.

The attacker needs access to the affected API and the target user's identifier. That identifier may be available through normal application metadata or other exposed responses.

Enforce server-side object-level authorization that compares the authenticated identity and applicable privileges with the requested target account before processing the action.

Apply centralized authorization middleware, minimize identifier exposure, test cross-user access attempts, and require explicit privilege checks for sensitive account-management operations.

No. Exploitation requires a valid authenticated account, but the account may have ordinary rather than administrative privileges.

The attacker needs access to the affected API and the target user's identifier. That identifier may be available through normal application metadata or other exposed responses.

Enforce server-side object-level authorization that compares the authenticated identity and applicable privileges with the requested target account before processing the action.

Apply centralized authorization middleware, minimize identifier exposure, test cross-user access attempts, and require explicit privilege checks for sensitive account-management operations.

Find out what's already
exploitable in your codebase.