{"id":"CVE-2026-40304","aliases":["GHSA-3jpj-v3xr-5h6g","GO-2026-5090"],"url":"https://o3.security/vulnerability/CVE-2026-40304","summary":"zrok's broken ownership check in DELETE /api/v2/unaccess allows non-admin to delete global frontend records","details":"Summary\nThe 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.\n\nAttack Vector: Network — the endpoint is a standard HTTP API call.\n\nAttack 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).\n\nPrivileges Required: Low — a valid user account with at least one registered environment is required; no admin privileges needed.\n\nUser Interaction: None.\n\nScope: Unchanged — the impact stays within the same server instance.\n\nConfidentiality Impact: None — no data is disclosed.\n\nIntegrity Impact: None — no data is improperly modified; the record is deleted (not corrupted).\n\nAvailability Impact: High — deleting a global frontend disrupts every public share routed through it on the instance, constituting a platform-wide availability impact.\n\nAffected Component\ncontroller/unaccess.go — unaccessHandler.Handle (line 56)","published":"2026-04-17T21:04:23.648Z","modified":"2026-08-12T03:51:28.623169841Z","cvss":{"score":5.3,"severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H"},"epss":{"score":0.00286,"percentile":0.2077,"asOf":"2026-08-10"},"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"Go","name":"github.com/openziti/zrok","fixedVersion":null},{"ecosystem":"Go","name":"github.com/openziti/zrok/v2","fixedVersion":"2.0.1"}],"fix":null,"references":[{"type":"WEB","url":"https://github.com/openziti/zrok/releases/tag/v2.0.1"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/40xxx/CVE-2026-40304.json"},{"type":"ADVISORY","url":"https://github.com/openziti/zrok/security/advisories/GHSA-3jpj-v3xr-5h6g"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-40304"},{"type":"PACKAGE","url":"https://github.com/openziti/zrok"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-08-12T03:51:28.623169841Z"}}