SEPTEMBER 17, 2026
Live Feed
Back to database
Case File

CVE-2026-53602

MEDIUM · CVSS 6.9 EPSS 0.22% Public Exploit

Source: NVD + CISA KEV + EPSS · Published 2026-09-04 · Last synced 2026-09-17

CyberRota Analysis

AI-Generated

The nebula-mesh control plane for Slack Nebula mesh VPN is vulnerable due to authorization gaps that allow untrusted hosts to obtain valid Nebula certificates, as the blocklist is not enforced during certificate issuance and renewal processes. This oversight can lead to unauthorized access and potential compromise of the VPN environment. Organizations using versions prior to 0.3.7 should prioritize upgrading to mitigate the risk of certificate misuse and ensure proper authorization checks are in place.

Public Exploit Signal

A public exploit, PoC, GitHub repository or Metasploit reference was detected for this CVE.

Note: these links are listed for security research and verification purposes only.

CVE
CVE-2026-53602
Severity
MEDIUM
CVSS
6.9
EPSS
0.22%

Original NVD Description

nebula-mesh is a self-hosted control plane for Slack Nebula mesh VPN. Prior to version 0.3.7, two related authorization gaps let a host that should no longer be trusted obtain a fresh, valid Nebula certificate, because nebula-mgmt does not re-evaluate revocation/authorization state at certificate issuance time — only at poll time. Firstly, the blocklist is not enforced at sign / re-enroll time. internal/api/enroll.go:128 calls caMgr.Sign(...) without consulting the blocklist. The blocklist is only checked in the poll path (internal/api/updates.go:57, fingerprintInBlocklist). The blocklist is keyed by certificate fingerprint (internal/store/sqlite.go), so a re-enrollment produces a new fingerprint that is not in the blocklist. Secondly, renewal does not re-validate operator / CA status. Auto-renewal at poll time (internal/api/updates.go:285-319, signHostCert) reads host.Name, host.Groups, host.NebulaIPs from the DB and re-signs without checking whether the owning operator is still active or the CA still valid. DisableOperator (internal/store/sqlite_operators.go) revokes sessions and API keys but does not retire the operator's CAs, and pki/signer.go checks only CA cert time-expiry, not operator/CA status. This issue has been patched in version 0.3.7.