Skip to main content

Arc CVE-2026-48050

HIGH
Information Exposure (CWE-200)
2026-06-11 https://github.com/Basekick-Labs/arc GHSA-j93g-rp6m-j32m
8.8
CVSS 4.0 · Vendor: https://github.com/Basekick-Labs/arc
Share

Severity by source

Vendor (https://github.com/Basekick-Labs/arc) PRIMARY
8.8 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
8.2 HIGH

Network-reachable endpoint with no authentication gives AV:N/PR:N; unbounded CPU-burn DoS with no rate limiting yields A:H; runtime memory leaks (not plaintext credential exfiltration) justify C:L over C:H; no integrity impact applies.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N
Red Hat
8.2 HIGH
qualitative

Primary rating from Vendor (https://github.com/Basekick-Labs/arc).

CVSS VectorVendor: https://github.com/Basekick-Labs/arc

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

5
Analysis Updated
Aug 21, 2026 - 23:31 vuln.today
v2 (cvss_changed)
Re-analysis Queued
Aug 21, 2026 - 23:22 vuln.today
cvss_changed
CVSS changed
Aug 21, 2026 - 23:22 NVD
8.8 (HIGH)
Source Code Evidence Fetched
Jun 11, 2026 - 17:30 vuln.today
Analysis Generated
Jun 11, 2026 - 17:30 vuln.today

DescriptionCVE.org

Summary

Arc registers Go's net/http/pprof handlers at /debug/pprof/* via app.Use(pprof.New()) in internal/api/server.go, and /debug/pprof is added to PublicPrefixes in cmd/arc/main.go. The auth middleware short-circuits before the token check on prefix match, so the endpoints are reachable without any authentication.

Impact

Any network-reachable caller (no token required) can:

  • Fetch /debug/pprof/heap - leaks in-memory state: live SQL strings, decoded msgpack records, decompressed request bodies, cached *TokenInfo (the auth cache keys on SHA-256 of the plaintext token at auth.go:543).
  • Fetch /debug/pprof/goroutine?debug=2 - leaks call stacks, identifying internal code paths.
  • Fetch /debug/pprof/profile?seconds=N - pins a CPU core for arbitrary duration. Trivial DoS amplification (one short HTTP request → minutes of server CPU).
  • Fetch /debug/pprof/trace - long-duration execution trace, similar DoS profile.

No authentication, no rate limiting, no resource bound on the seconds parameter.

Patches

https://github.com/Basekick-Labs/arc/releases/tag/v26.06.1

Planned mitigation:

  1. Gate pprof registration behind an env var (ARC_DEBUG_PPROF=1) that defaults to off.
  2. When enabled, bind pprof to a separate localhost-only listener (127.0.0.1:6060 via dedicated net/http server) so it's never reachable from the public API port.
  3. Remove /debug/pprof from PublicPrefixes.
  4. Fix the HasPrefix bug where "/debug/pprofX" matches "/debug/pprof".

Workarounds

  • Block /debug/pprof* at a reverse proxy / load balancer in front of Arc.
  • Restrict Arc's API port to known-trusted networks via firewall rules.
  • Patch the running build: comment out app.Use(pprof.New()) in internal/api/server.go and rebuild.

Credits

Reported by Alex Manson (@NeuroWinter, https://neurowinter.com/) on 2026-05-19.

AnalysisAI

Unauthenticated access to Go runtime profiling endpoints in Basekick-Labs Arc (all versions before v26.06.1) allows any network-reachable caller to extract sensitive in-memory state - including live SQL strings, decoded msgpack payloads, and SHA-256-keyed authentication token cache entries - and to trigger unbounded CPU consumption via the /debug/pprof/profile endpoint. The root cause is a two-part misconfiguration: pprof handlers are unconditionally registered on the public Fiber listener via app.Use(pprof.New()) in internal/api/server.go, and /debug/pprof is explicitly added to the auth middleware's PublicPrefixes list in cmd/arc/main.go, causing the token check to short-circuit before it runs. No public exploit has been identified and EPSS is low at 0.09%, but the attack requires no authentication and no special setup against any default Arc deployment reachable over the network.

Technical ContextAI

Arc is a Go-based API server built on the Fiber web framework. It integrates Go's standard library net/http/pprof package for runtime diagnostics. The vulnerability arises from two compounding decisions: first, app.Use(pprof.New()) registers all pprof HTTP handlers directly onto the public Fiber application instance in internal/api/server.go; second, cmd/arc/main.go adds the path prefix /debug/pprof to the auth middleware's PublicPrefixes allowlist. The middleware uses strings.HasPrefix to check whether an incoming request path starts with any listed prefix - a function that also has a secondary path-confusion bug, where /debug/pprofX matches /debug/pprof, meaning any path sharing those bytes bypasses authentication. The exposed pprof endpoints include /debug/pprof/heap (full heap memory dump), /debug/pprof/goroutine (all goroutine stacks), /debug/pprof/profile (CPU profiler, parameterized by seconds), and /debug/pprof/trace (execution tracer). CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor) is the correct root-cause class, covering both the memory-state disclosure vector and the availability impact from the resource-unbounded profiling endpoints. The affected package is identified by CPE pkg:go/github.com/basekick-labs/arc, all versions before pseudo-version 0.0.0-20260520170331-32a4091fb949.

RemediationAI

The primary fix is to upgrade Basekick-Labs Arc to v26.06.1 or later, available at https://github.com/Basekick-Labs/arc/releases/tag/v26.06.1 (commit 32a4091fb949). This release removes pprof registration from the public Fiber listener entirely, making it opt-in via the environment variable ARC_DEBUG_PPROF=1 and binding exclusively to 127.0.0.1:6060 (overridable via ARC_DEBUG_PPROF_ADDR, with a mandatory second opt-in ARC_DEBUG_PPROF_ALLOW_NON_LOOPBACK=1 required before binding to a non-loopback address). If an immediate upgrade is not possible, three workarounds are available with distinct trade-offs: (1) Block all requests matching /debug/pprof* at a reverse proxy or load balancer before they reach Arc - this eliminates both the information disclosure and DoS vectors immediately, requires no application-side changes, and is fully reversible, making it the preferred interim control; (2) Restrict Arc's API port (default :8000) to known-trusted source networks via firewall rules - this reduces exposure but requires accurate network topology knowledge and does not protect against threats from within the trusted range; (3) Comment out app.Use(pprof.New()) in internal/api/server.go and rebuild the binary - this surgically removes the vulnerable handler registration but requires a source-code change and rebuild cycle, which may not be operationally feasible on short notice.

Vendor StatusVendor

SUSE

Product Status
SUSE Linux Enterprise Server 16.1 Affected
SUSE Linux Enterprise Server for SAP applications 16.1 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP5 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP6 Affected
openSUSE Leap 15.5 Affected

Share

CVE-2026-48050 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy