<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-09-30T02:45:47.263323+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/fkie_cve-2026-55512</id>
    <title>fkie_cve-2026-55512</title>
    <updated>2026-09-30T02:45:47.291976+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>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.</p>
      </div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/fkie_cve-2026-55512"/>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/ghsa-m3cx-mwpg-32jg</id>
    <title>GHSA-m3cx-mwpg-32jg — nebula-mesh: Unauthenticated OIDC login endpoint allocates unbounded in-memory state entries without rate limiting</title>
    <updated>2026-09-30T02:45:47.292181+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Go: github.com/forgekeep/nebula-mesh</p>
<p>### Summary
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.</p>
<p>### Details
The OIDC login route is registered directly by `WithOIDC`:</p>
<p>- `internal/web/web.go:153` registers `w.router.Get("/ui/oidc/login", o.HandleLogin)`.
- `internal/web/web.go:154` rate-limits only `GET /ui/oidc/callback` with `w.rateLimitMiddleware("auth")`.</p>
<p>The normal `/ui/*` route group applies rate limiting to login/register form submissions, but this direct registration happens outside that group:</p>
<p>- `internal/web/web.go:287` through `internal/web/web.go:292` show the rate-limited local login, TOTP, and register POST routes.</p>
<p>The OIDC login handler allocates persistent server-side state before redirecting to the configured identity provider:</p>
<p>- `internal/web/oidc.go:105` defines `HandleLogin`.
- `internal/web/oidc.go:106` creates a random state token.
- `internal/web/oidc.go:112` calls `o.rememberState(state)`.
- `internal/web/oidc.go:122` redirects to `o.oauth.AuthCodeURL(state)`.</p>
<p>The state storage has a TTL but no maximum size:</p>
<p>- `internal/w…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/ghsa-m3cx-mwpg-32jg"/>
  </entry>
</feed>
