Description
nebula-mesh is a self-hosted control plane for Slack Nebula mesh VPN. From version 0.2.0 to before version 0.5.0, when OIDC is enabled, GET /ui/oidc/login is reachable without authentication and is registered outside the Web UI rate-limited auth routes. Every request creates a fresh random OIDC state value and stores it in an in-memory map for 10m. Expired states are swept lazily, but there is no rate limit or maximum live-state cap on the allocation path. An unauthenticated remote client can therefore grow OIDC.states for the full state TTL, bounded by request throughput rather than by configured auth rate limits. This issue has been patched in version 0.5.0.
Published: 2026-09-04
Score: 5.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Resource Exhaustion
Action: Patch immediately
AI Analysis

Impact

An unauthenticated OIDC login endpoint allocates an unbounded number of in‑memory state entries for each request without any rate limiting or cap on concurrent live entries. This uncontrolled allocation falls under CWE‑400, leading to the possibility of exhausting system memory and causing a denial of service. The vulnerability exists in the nebula‑mesh control plane when OIDC is enabled and allows any remote client to create thousands or millions of state values that are stored for ten minutes each until lazily swept.

Affected Systems

The affected product is nebula‑mesh from forgekeep, with vulnerability present in versions from 0.2.0 up to, but not including, 0.5.0. Version 0.5.0 and later contain the fix for this issue.

Risk and Exploitability

The CVSS score of 5.3 reflects a moderate severity, and no EPSS data is available, so the exploitation probability is uncertain but could be significant in environments with unconstrained network exposure. The vulnerability is not listed in CISA's KEV catalog. An attacker can trigger the exploit by sending many unauthenticated GET requests to /ui/oidc/login from a remote location; each request creates a state value that remains in memory for up to ten minutes, effectively bypassing authentication rate limits. Over time, the continuous allocation can deplete available memory, potentially crashing the service or severely degrading performance.

Generated by OpenCVE AI on September 4, 2026 at 20:31 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade nebula‑mesh to version 0.5.0 or newer where the state allocation path is capped and rate‑limited.
  • If upgrading is delayed, restrict external access to the /ui/oidc/login endpoint via firewall rules or network segmentation to limit request volume.
  • Configure operating‑system or container resource limits (e.g., ulimit, memory quotas) so that the nebula‑mesh process cannot consume excessive memory.

Generated by OpenCVE AI on September 4, 2026 at 20:31 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-m3cx-mwpg-32jg nebula-mesh: Unauthenticated OIDC login endpoint allocates unbounded in-memory state entries without rate limiting
History

Wed, 09 Sep 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 07 Sep 2026 08:45:00 +0000

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

Fri, 04 Sep 2026 19:45:00 +0000

Type Values Removed Values Added
Description nebula-mesh is a self-hosted control plane for Slack Nebula mesh VPN. From version 0.2.0 to before version 0.5.0, when OIDC is enabled, GET /ui/oidc/login is reachable without authentication and is registered outside the Web UI rate-limited auth routes. Every request creates a fresh random OIDC state value and stores it in an in-memory map for 10m. Expired states are swept lazily, but there is no rate limit or maximum live-state cap on the allocation path. An unauthenticated remote client can therefore grow OIDC.states for the full state TTL, bounded by request throughput rather than by configured auth rate limits. This issue has been patched in version 0.5.0.
Title nebula-mesh: Unauthenticated OIDC login endpoint allocates unbounded in-memory state entries without rate limiting
Weaknesses CWE-400
References
Metrics cvssV3_1

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


Subscriptions

Forgekeep Nebula-mesh
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-09T15:56:02.715Z

Reserved: 2026-06-16T22:44:22.283Z

Link: CVE-2026-55512

cve-icon Vulnrichment

Updated: 2026-09-09T15:55:41.329Z

cve-icon NVD

Status : Deferred

Published: 2026-09-04T20:17:23.717

Modified: 2026-09-09T16:17:03.353

Link: CVE-2026-55512

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-07T08:25:53Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption