Description
nebula-mesh is a self-hosted control plane for Slack Nebula mesh virtual private network. Prior to version 0.3.4, the `/api/v1/*` route surface trusts the bearer token alone for authorisation on most endpoints. The codebase itself admits this at `internal/api/hosts.go:384`: "API trusts the bearer token for authorisation; per-CA ownership is enforced only in the Web layer." The Web UI gates state-changing routes through `loadAccessibleCA` (`internal/web/cas.go`); CA-management endpoints in `internal/api/cas.go` ALSO have proper `canAccessCA` gates. The gap is on the host, network, firewall, mobile-bundle, and most operator endpoints. Combined with the per-operator CA model from ADR 0002, this gives any non-admin operator API key broad cross-tenant access — instant privilege escalation in the worst case. Version 0.3.4 fixes the issue.
Published: 2026-07-23
Score: 9.9 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability stems from the /api/v1/* routes in nebula‑mesh, which trust only the bearer token for authorization. The code at internal/api/hosts.go:384 confirms that API authorization relies solely on the token, with per‑CA ownership enforced only in the Web layer. This omission lets any non‑admin operator use their token to access and modify other operators’ CAs, hosts, networks, firewalls, and mobile bundles, enabling cross‑operator privilege escalation. Tagged CWE‑862, the flaw gives a CVSS score of 9.9. The issue is resolved starting with version 0.3.4.

Affected Systems

The vulnerability affects the self‑hosted control plane nebula‑mesh from juev. Any instance running a version prior to 0.3.4 is susceptible, regardless of deployment size or configuration. Operators using older releases should assess their current token distribution and access policies before upgrading.

Risk and Exploitability

The CVSS score of 9.9 indicates an extremely severe potential impact if the vulnerability is exploited. However, the EPSS score of less than 1% suggests that, based on current threat intelligence, exploitation instances are rare. Attackers would still need a valid bearer token with non‑admin privileges – resulting in a legitimate or compromised operator abusing their token. The vulnerability is not listed in the CISA KEV catalog, but the high severity still warrants immediate remediation.

Generated by OpenCVE AI on August 3, 2026 at 20:59 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade nebula‑mesh to version 0.3.4 or later, which implements ownership checks on all sensitive API endpoints.
  • Verify that API keys are issued only to trusted administrators and that tokens are rotated regularly; enforce least privilege in token generation.
  • After upgrading, audit logs for CA, host, network, firewall, and mobile‑bundle operations to detect any residual unauthorized access and confirm the new checks are effective.

Generated by OpenCVE AI on August 3, 2026 at 20:59 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-598g-h2vc-h5vg nebula-mesh: API endpoints lack ownership checks, enabling cross-operator privilege escalation
History

Tue, 28 Jul 2026 16:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Mon, 27 Jul 2026 13:15:00 +0000

Type Values Removed Values Added
First Time appeared Juev
Juev nebula-mesh
Vendors & Products Juev
Juev nebula-mesh

Thu, 23 Jul 2026 21:45:00 +0000

Type Values Removed Values Added
Description nebula-mesh is a self-hosted control plane for Slack Nebula mesh virtual private network. Prior to version 0.3.4, the `/api/v1/*` route surface trusts the bearer token alone for authorisation on most endpoints. The codebase itself admits this at `internal/api/hosts.go:384`: "API trusts the bearer token for authorisation; per-CA ownership is enforced only in the Web layer." The Web UI gates state-changing routes through `loadAccessibleCA` (`internal/web/cas.go`); CA-management endpoints in `internal/api/cas.go` ALSO have proper `canAccessCA` gates. The gap is on the host, network, firewall, mobile-bundle, and most operator endpoints. Combined with the per-operator CA model from ADR 0002, this gives any non-admin operator API key broad cross-tenant access — instant privilege escalation in the worst case. Version 0.3.4 fixes the issue.
Title nebula-mesh: API endpoints lack ownership checks, enabling cross-operator privilege escalation
Weaknesses CWE-862
References
Metrics cvssV3_1

{'score': 9.9, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H'}


Subscriptions

Juev Nebula-mesh
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-28T14:55:31.612Z

Reserved: 2026-05-19T21:29:25.482Z

Link: CVE-2026-47724

cve-icon Vulnrichment

Updated: 2026-07-28T14:29:15.983Z

cve-icon NVD

Status : Deferred

Published: 2026-07-23T21:17:04.477

Modified: 2026-07-30T16:41:25.650

Link: CVE-2026-47724

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T21:00:12Z

Weaknesses