---
title: "CVE-2026-47724: nebula-mesh: API endpoints lack ownership checks, enabling cross-operator privilege escalation"
url: https://erroneo.us/security/cve/CVE-2026-47724/
description: "CVE-2026-47724 (github.com/juev/nebula-mesh (Go)): nebula-mesh is a self-hosted control plane for Slack Nebula mesh virtual private network. Prior to…"
type: vulnerability-record
section: "Security Digest"
date_published: 2026-07-23
date_modified: 2026-07-28
publisher: erroneo.us
author: erroneo.us Security Desk
cve: "CVE-2026-47724"
kev: false
cvss: 9.9
epss: 0.00481
license: All rights reserved. Quote with attribution and a link.
---

# CVE-2026-47724: nebula-mesh: API endpoints lack ownership checks, enabling cross-operator privilege escalation

**Signal:** Critical, preconditions apply. Severe if exploited, but exploitation needs conditions that may not apply to you. (Computed from CISA KEV, EPSS and CVSS; not an editorial verdict.)

## Should you act?

- No confirmed exploitation. It is not in CISA’s KEV catalog and CISA’s SSVC assessment records no known exploitation. That can change quickly after a public write-up; re-check if you are affected.
- EPSS 0.5% , percentile 40: FIRST’s model estimates a 0.5% chance of exploitation activity in the next 30 days, higher than 40% of all scored CVEs (low). EPSS is a probability, not a verdict.
- Needs an account (low (any account)). Exposure depends on who can log in.
- Only applies if your dependency tree includes github.com/juev/nebula-mesh (Go) < 0.3.4, fixed in 0.3.4 . Check your lockfile, including transitive dependencies.

## What it is

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.

## Affected packages

- Go `github.com/juev/nebula-mesh` < 0.3.4 → fixed: 0.3.4

## Affected products (CVE record)

- juev nebula-mesh: < 0.3.4

## Severity

- GitHub_M CVSS 3.1: 9.9 `CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H`
- GitHub CVSS 3.1: 9.9 `CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H`

## Exploitation

- CISA KEV: not listed (no confirmed in-the-wild exploitation known to CISA).
- CISA SSVC assessment: exploitation none , automatable no , technical impact total .
- FIRST EPSS (model of 2026-10-21): 0.48% probability of exploitation activity in the next 30 days; percentile 40.

## Sources

- [GitHub Advisory GHSA-598g-h2vc-h5vg](https://github.com/advisories/GHSA-598g-h2vc-h5vg)
- [CVE.org record CVE-2026-47724](https://www.cve.org/CVERecord?id=CVE-2026-47724)
- [NVD entry CVE-2026-47724](https://nvd.nist.gov/vuln/detail/CVE-2026-47724)
- [github.com](https://github.com/forgekeep/nebula-mesh/security/advisories/GHSA-598g-h2vc-h5vg)
- [github.com](https://github.com/forgekeep/nebula-mesh/commit/9d8bcd7667ecd0c2975cc71fb35a02fe131f76f2)
- [github.com](https://github.com/juev/nebula-mesh/security/advisories/GHSA-598g-h2vc-h5vg)

---
Source page: https://erroneo.us/security/cve/CVE-2026-47724/ · Security Digest: https://erroneo.us/security/ · More: https://erroneo.us/llms.txt
