CVE-2026-47427: github-mcp-server Nil Pointer Dereference DoS in completion/complete Handler
Any unauthenticated client can crash GitHub's official MCP Server by sending a malformed completion request with a missing ref field, triggering an unrecoverable Go runtime panic before any auth…

The problem
The CompletionsHandler function in pkg/github/server.go:198 unconditionally dereferences params.Ref with no nil check. A client that omits the ref field (or sends empty params) in a completion/complete JSON-RPC request causes an immediate Go runtime panic.
The panic fires before authentication or token validation, so no valid credentials are required. The process exits and cannot recover, making this a complete denial of service.
Proof of concept
A working proof-of-concept for CVE-2026-47427 in github.com/github/github-mcp-server, with the exact payload below.
{"jsonrpc":"2.0","id":2,"method":"completion/complete","params":{"argument":{"name":"x","value":"y"}}}The completion/complete handler reads params.Ref assuming the field is always present. When it is nil, Go panics with runtime error: invalid memory address or nil pointer dereference at server.go:198. The fix introduced in PR #2502 (commit c88d2ec) adds an early guard: if params == nil || params.Ref == nil, the handler returns a graceful error instead of proceeding.
The root cause is CWE-476: missing nil validation on a pointer field that the MCP protocol does not require clients to supply.
The fix
Upgrade to github-mcp-server v1.1.0 or later. The patch (PR #2502, commit c88d2ec) adds a nil check for both params and params.Ref at the top of CompletionsHandler, returning an error response instead of panicking. No configuration change is needed beyond the version upgrade.
Related research
- high · 8.2CVE-2026-53657CVE-2026-53657: Lima QEMU Guest Agent Socket World-Writable Privilege Escalation
- highCVE-2026-35511CVE-2026-35511: Authorizer Zero-Click Account Takeover via OAuth Identity Linking
- highCVE-2026-54526CVE-2026-54526: Argo Workflows ArtifactGC.PodSpecPatch Allow-List Bypass
- highCVE-2026-54917CVE-2026-54917: SeaweedFS Path Traversal in S3 and Iceberg REST Gateways