OSV 1.4.0 · github-reviewed · 修改于 2026-06-12 01:10
发布时间
2026-06-12 01:10
GitHub 审查时间
2026-06-12 01:10
NVD 发布时间
—
源文件
advisories/github-reviewed/2026/06/GHSA-j93g-rp6m-j32m/GHSA-j93g-rp6m-j32m.json
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.
Any network-reachable caller (no token required) can:
/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)./debug/pprof/goroutine?debug=2 — leaks call stacks, identifying internal code paths./debug/pprof/profile?seconds=N — pins a CPU core for arbitrary duration. Trivial DoS amplification (one short HTTP request → minutes of server CPU)./debug/pprof/trace — long-duration execution trace, similar DoS profile.No authentication, no rate limiting, no resource bound on the seconds parameter.
https://github.com/Basekick-Labs/arc/releases/tag/v26.06.1
Planned mitigation:
ARC_DEBUG_PPROF=1) that defaults to off.127.0.0.1:6060 via dedicated net/http server) so it's never reachable from the public API port./debug/pprof from PublicPrefixes.HasPrefix bug where "/debug/pprofX" matches "/debug/pprof"./debug/pprof* at a reverse proxy / load balancer in front of Arc.app.Use(pprof.New()) in internal/api/server.go and rebuild.Reported by Alex Manson (@NeuroWinter, https://neurowinter.com/) on 2026-05-19.