← Back to CVE Explorer

CVE-2026-40304

Full vulnerability record from the local CVENow database.

Description

zrok is software for sharing web services, files, and network resources. Prior to version 2.0.1, 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. Version 2.0.1 patches the issue.

Severity
MEDIUM
CVSS score
5.3 (v3.1)
Vulnerability status
Analyzed
Source identifier
Published
2026-04-17 22:16:32.230000
Last modified
2026-10-26 22:10:00.163000
View original CVE JSON
{
  "id": "CVE-2026-40304",
  "sourceIdentifier": "[email protected]",
  "published": "2026-04-17T22:16:32.230",
  "lastModified": "2026-10-26T22:10:00.163",
  "vulnStatus": "Analyzed",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "zrok is software for sharing web services, files, and network resources. Prior to version 2.0.1, 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. Version 2.0.1 patches the issue."
    },
    {
      "lang": "es",
      "value": "zrok es un software para compartir servicios web, archivos y recursos de red. Antes de la versión 2.0.1, el gestor de desacceso (controller/unaccess.go) contiene un error lógico en su protección de propiedad: cuando un registro de frontend tiene environment_id = NULL (el marcador para frontends globales creados por administradores), la condición se cortocircuita a falso y permite que la eliminación proceda sin ninguna verificación de propiedad. Un usuario no administrador que conoce un token de frontend global puede llamar a DELETE /api/v2/unaccess con cualquiera de sus propios IDs de entorno y eliminar permanentemente el frontend global, derribando todas las comparticiones públicas enrutadas a través de él. La versión 2.0.1 parchea el problema."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "openziti",
          "product": "zrok",
          "versions": [
            {
              "version": "< 2.0.1",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H",
          "baseScore": 5.3,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "HIGH",
          "privilegesRequired": "LOW",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "NONE",
          "integrityImpact": "NONE",
          "availabilityImpact": "HIGH"
        },
        "exploitabilityScore": 1.6,
        "impactScore": 3.6
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-04-20T14:51:35.879686Z",
          "id": "CVE-2026-40304",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-284"
        },
        {
          "lang": "en",
          "value": "CWE-863"
        }
      ]
    }
  ],
  "configurations": [
    {
      "nodes": [
        {
          "operator": "OR",
          "negate": false,
          "cpeMatch": [
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:netfoundry:zrok:*:*:*:*:*:*:*:*",
              "versionEndExcluding": "2.0.1",
              "matchCriteriaId": "70C6F018-6D34-4A75-A49D-A795B0A5B056"
            }
          ]
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/openziti/zrok/releases/tag/v2.0.1",
      "source": "[email protected]",
      "tags": [
        "Release Notes"
      ]
    },
    {
      "url": "https://github.com/openziti/zrok/security/advisories/GHSA-3jpj-v3xr-5h6g",
      "source": "[email protected]",
      "tags": [
        "Vendor Advisory"
      ]
    }
  ]
}