CVE-2026-48025 nebula-mesh: Decrypted CA private key persists in heap after signing
Attackers with heap access can recover decrypted CA private keys from nebula-mesh control plane memory due to missing zeroization.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-48025?
CVE-2026-48025 is a medium-severity vulnerability in juev nebula-mesh, published on 28 Jul 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
nebula-mesh is a self-hosted control plane for Slack Nebula mesh virtual private network. Prior to version 0.3.7, internal/pki/resolver.go:36-64 constructs a CAManager with the plaintext ed25519.PrivateKey after unwrapping via the master key; internal/pki/ca.go:13-16 stores it. Callers at internal/api/enroll.go:116, internal/api/updates.go:297, and internal/api/mobile_bundle.go:40 use the manager for one Sign() and drop the reference on function return — but the underlying slice contents are not wiped before release. The keystore package's contract (internal/keystore/keystore.go doc: "Callers MUST zeroise the returned plaintext DEK as soon as it is no longer needed") is not met by the CAManager consumer. Decrypted CA private keys persist in process heap until Go's GC scavenges the underlying slice — minutes to hours under load, indefinitely on idle servers. This issue has been patched in version 0.3.7.
Weakness: CWE-244
Which versions are affected by CVE-2026-48025?
5 open source packages ship an affected version, including github.com/juev/nebula-mesh and github.com/forgekeep/nebula-mesh.
| Package | Affected | Fixed in |
|---|---|---|
github.com/juev/nebula-mesh Go | All versions | 0.3.7 |
github.com/juev/nebula-mesh Go | All versions | 0.3.7 |
github.com/forgekeep/nebula-mesh Go | All versions | 0.3.7 |
github.com/forgekeep/nebula-mesh Go | All versions | 0.3.7 |
github.com/forgekeep/nebula-mesh Go | All versions | 0.3.7 |
How do I fix CVE-2026-48025?
Upgrade github.com/juev/nebula-mesh to 0.3.7 or later.
Is CVE-2026-48025 being exploited?
There is no known exploitation of CVE-2026-48025 in the wild and no public exploit code.
Sources
Also known as GHSA-8h84-fhqq-q58v, GO-2026-5255.