What happened
SiYuan's MCP privateCacheMiddleware dereferences a nil pointer when handling a resources/read request for a non-existent resource in an initialized MCP session, causing a panic that terminates the kernel. An attacker holding a valid API token can crash the service.
Why it matters
MCP servers are increasingly exposed to LLM agents. Even a low-severity authenticated DoS that kills the process is relevant where an agent-orchestrated deployment depends on the MCP endpoint staying up.
Attack vector
Authenticated MCP resources/read of a nonexistent resource triggers a nil-pointer dereference in privateCacheMiddleware (CWE-476), panicking and terminating the kernel process and interrupting service.
Affected systems
SiYuan before 3.8.9 (MCP server)
Mitigation
Upgrade to SiYuan 3.8.9.