Overview
A critical vulnerability has been identified in SiYuan, an open-source, local-first personal knowledge management application. CVE-2026-74799 allows unauthenticated attackers to access Go runtime net/http/pprof debug endpoints, enabling extraction of sensitive in-memory data including authentication tokens and AI provider API keys.
The vulnerability carries a CVSS score of 9.3, reflecting the severe impact of unauthenticated access to live heap dumps and goroutine state.
Vulnerability Details
SiYuan registers Go's built-in net/http/pprof debug endpoints — including /debug/pprof/heap, /debug/pprof/goroutine, and related routes — without requiring authentication. The flaw is triggered when the application is launched without the --mode flag set to exactly prod.
In development or default mode, these endpoints are fully accessible to anyone with network access to the SiYuan instance. The heap dump endpoint in particular is exploitable for extracting live in-memory secrets, including:
AccessAuthCode— SiYuan's primary access authentication token- AI provider API keys — credentials for OpenAI, Anthropic, and other configured AI services stored in application memory
Affected Endpoints
| Endpoint | Data Exposed |
|---|---|
/debug/pprof/heap | Full heap dump — includes all in-memory variables and secrets |
/debug/pprof/goroutine | Goroutine stack traces revealing execution context |
/debug/pprof/ | Index of all available profiling endpoints |
/debug/pprof/cmdline | Process command line arguments |
Impact
An attacker with access to the network interface SiYuan is listening on can:
- Retrieve a full heap dump via a simple HTTP GET request
- Parse the binary dump offline to extract string-valued secrets
- Use extracted
AccessAuthCodefor full authenticated access to the SiYuan workspace - Exfiltrate AI API keys to incur charges or access sensitive AI-mediated data
Since SiYuan is frequently run locally or on home servers without strict network segmentation, the attack surface includes local network attackers, malicious browser scripts (if SiYuan listens on 0.0.0.0), and any process on the same host.
Technical Context
Go's net/http/pprof package registers itself via init() when imported, adding profiling routes to the default HTTP mux. Applications that use http.DefaultServeMux and import net/http/pprof (even indirectly) automatically expose these routes unless explicitly protected. SiYuan failed to gate these routes behind its authentication middleware when not running in prod mode.
Fix
The vulnerability is patched in SiYuan v3.7.4. The fix restricts pprof endpoints to authenticated sessions or removes them entirely in non-development builds.
Remediation
- Update immediately to SiYuan v3.7.4 or later
- If immediate update is not possible, ensure SiYuan is launched with
--mode prod - Restrict network access to the SiYuan port (default: 6806) via firewall rules
- Rotate any API keys or credentials that may have been accessible while the vulnerable version was running
- Audit access logs for unexpected requests to
/debug/pprof/paths