Executive brief
Nebula Mesh, a tool for managing secure overlay networks, was found to store enrollment tokens in plain text within its database. If an attacker gains access to database backups or snapshots, they can steal these tokens to impersonate legitimate devices and join the private network. This could allow unauthorized access to sensitive internal systems and data.
Technical details
Nebula Mesh (github.com/juev/nebula-mesh) stores enrollment tokens as raw UUID strings in the 'enrollment_tokens.token' column of its SQLite database. This lacks defense-in-depth compared to other sensitive fields like API keys, which are SHA-256 hashed. An attacker with read access to the database (via backups, filesystem access, or SQL injection) can retrieve these single-use tokens. By consuming a token before the legitimate agent, an attacker can mint a certificate against their own keypair and assume the agent's identity within the Nebula mesh. The issue is addressed in version 0.3.2 by implementing SHA-256 hashing for tokens at rest.
Affected products
- juev nebula-mesh <= 0.3.1
Timeline
- 2026-05-21: disclosed: Advisory created by researcher
- 2026-06-22: advisory: GitHub Advisory published
- 2026-06-22: patched: Version 0.3.2 released