Monitor vulnerabilities like this one.
Sign up free to get alerted when software you use is affected.
5.3
zrok: Broken ownership check in DELETE /api/v2/unaccess allows non-admin to delete global frontend records
GHSA-3jpj-v3xr-5h6g
CVE-2026-40304
Summary
Summary
The unaccess handler (controller/unaccess.go) contains a logical error in its ownership guard: when a frontend record has environment_id = NULL (the marker for admin-created global frontends), the condition short-circuits to false and allows the deletion to proceed without any ownership veri...
What to do
- Update github.com openziti to version 2.0.1.
Affected software
| Ecosystem | Vendor | Product | Affected versions |
|---|---|---|---|
| go | github.com | openziti | <= 1.1.11 |
| go | github.com | openziti |
< 2.0.1 Fix: upgrade to 2.0.1
|
Original title
zrok: Broken ownership check in DELETE /api/v2/unaccess allows non-admin to delete global frontend records
Original description
Summary
The unaccess handler (controller/unaccess.go) contains a logical error in its ownership guard: when a frontend record has environment_id = NULL (the marker for admin-created global frontends), the condition short-circuits to false and allows the deletion to proceed without any ownership verification. A non-admin user who knows a global frontend token can call DELETE /api/v2/unaccess with any of their own environment IDs and permanently delete the global frontend, taking down all public shares routed through it.
Attack Vector: Network — the endpoint is a standard HTTP API call.
Attack Complexity: High — successful exploitation requires prior knowledge of a global frontend token. These tokens are not returned to non-admin users by any standard API endpoint; obtaining one requires an out-of-band step (e.g., leaked server logs, admin documentation for a self-hosted instance, or social engineering).
Privileges Required: Low — a valid user account with at least one registered environment is required; no admin privileges needed.
User Interaction: None.
Scope: Unchanged — the impact stays within the same server instance.
Confidentiality Impact: None — no data is disclosed.
Integrity Impact: None — no data is improperly modified; the record is deleted (not corrupted).
Availability Impact: High — deleting a global frontend disrupts every public share routed through it on the instance, constituting a platform-wide availability impact.
Affected Component
controller/unaccess.go — unaccessHandler.Handle (line 56)
The unaccess handler (controller/unaccess.go) contains a logical error in its ownership guard: when a frontend record has environment_id = NULL (the marker for admin-created global frontends), the condition short-circuits to false and allows the deletion to proceed without any ownership verification. A non-admin user who knows a global frontend token can call DELETE /api/v2/unaccess with any of their own environment IDs and permanently delete the global frontend, taking down all public shares routed through it.
Attack Vector: Network — the endpoint is a standard HTTP API call.
Attack Complexity: High — successful exploitation requires prior knowledge of a global frontend token. These tokens are not returned to non-admin users by any standard API endpoint; obtaining one requires an out-of-band step (e.g., leaked server logs, admin documentation for a self-hosted instance, or social engineering).
Privileges Required: Low — a valid user account with at least one registered environment is required; no admin privileges needed.
User Interaction: None.
Scope: Unchanged — the impact stays within the same server instance.
Confidentiality Impact: None — no data is disclosed.
Integrity Impact: None — no data is improperly modified; the record is deleted (not corrupted).
Availability Impact: High — deleting a global frontend disrupts every public share routed through it on the instance, constituting a platform-wide availability impact.
Affected Component
controller/unaccess.go — unaccessHandler.Handle (line 56)
ghsa CVSS3.1
5.3
Vulnerability type
CWE-284
Improper Access Control
CWE-863
Incorrect Authorization
Published: 16 Apr 2026 · Updated: 16 Apr 2026 · First seen: 16 Apr 2026