CVE-2026-40304: zrok: Broken ownership check in DELETE /api/v2/unaccess allows non-admin to delete global frontend records
(updated )
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)
References
Code Behaviors & Features
Detect and mitigate CVE-2026-40304 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →