CSIRTS // UNIFIED SECURITY ADVISORY FEEDSYS ● ONLINE · POWERED BY INTELFUSIONS.COM

GHSA-g4x6-jcvr-9m3g: nebula-mesh: Web UI host creation ignores configured enrollment token TTL and mints 24-hour bearer enrollment tokens

mediumCVSS 5.4CVE-2026-55513
Summary The nebula-mgmt Web UI host-creation path ignores both the server-wide enrollment_token_ttl security setting and per-network network_config.enrollment_token_ttl overrides. API host creation and token-regeneration paths use the configured TTL resolver, but POST /ui/hosts hardcodes now.Add(24 * time.Hour) for newly minted agent enrollment tokens. In deployments that intentionally reduce enrollment-token lifetime, any authenticated operator who can create a host through the Web UI can still mint a bearer enrollment token valid for about 24 hours. Details Enrollment tokens are bearer credentials for the public POST /api/v1/enroll endpoint: possession of a valid token allows enrolling the pending host and receiving a signed Nebula certificate/config for that host. The server configuration documents a security knob for their default lifetime and per-network overrides: - internal/config/server.go:82 defines EnrollmentTokenTTL as the default lifetime for freshly minted enrollment tokens. - internal/config/server.go:83 documents per-network overrides in network_config under enrollment_token_ttl. The API server implements and consistently uses this resolver: - internal/api/server.go:77 defines tokenTTLFor, with precedence of per-network enrollment_token_ttl, then server default, then 24h fallback. - internal/api/server.go:82 reads network_config.enrollment_token_ttl. - internal/api/server.go:89 falls back to the configured server default. - internal/api/hosts.go:190 through internal/api/hosts.go:196 use now.Add(s.tokenTTLFor(r.Context(), host.NetworkID)) for API host creation. The Web UI sibling path does not call the resolver and instead always sets a 24-hour expiry: - internal/web/handlers.go:874 mints the raw token for POST /ui/hosts. - internal/web/handlers.go:879 sets ExpiresAt: now.Add(24 * time.Hour). This creates inconsistent behavior between API and Web UI host creation and bypasses an operator-configured token lifetime policy. The issue is reachable b

Details

Source
GitHub Security Advisories (INTL · database · site)
Severity
medium — CVSS 5.4
Published
2026-07-14
Last updated
2026-07-14
Exploitation
Not in CISA KEV at last sync

Original advisory: https://github.com/advisories/GHSA-g4x6-jcvr-9m3g

Referenced CVEs

CVECSIRTS overviewExternal
CVE-2026-55513coverage & exploitation statusNVD · CVE.org

More from GitHub Security Advisories