Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Network attack with no privileges or user interaction, only availability impact.
Primary rating from Vendor (https://github.com/github/github-mcp-server).
CVSS VectorVendor: https://github.com/github/github-mcp-server
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Lifecycle Timeline
3DescriptionCVE.org
Summary
A nil pointer dereference vulnerability in the GitHub MCP Server causes it to crash when receiving a malformed completion/complete request with missing or empty parameters. This allows any unauthenticated client to cause a complete denial of service.
Details
The CompletionsHandler function in pkg/github/server.go:198 accesses params.Ref without checking if it's nil first. When a client sends a completion/complete request with a missing ref field, the handler dereferences nil and the Go runtime panics.
The crash occurs before any authentication or token validation, so even requests with fake tokens can trigger it.
PoC
After completing the MCP initialization handshake, send either:
Empty params:
{"jsonrpc":"2.0","id":2,"method":"completion/complete","params":{}}
Missing ref field:
{"jsonrpc":"2.0","id":2,"method":"completion/complete","params":{"argument":{"name":"x","value":"y"}}}
Result:
panic: runtime error: invalid memory address or nil pointer dereference goroutine 42 [running]: github.com/github/github-mcp-server/pkg/github.NewMCPServer.CompletionsHandler.func1(...) pkg/github/server.go:198 +0x24
Impact
Any unauthenticated client that can send JSON-RPC messages to the server can crash it immediately. This is a complete denial of service - the panic is unrecoverable and kills the process.
Automated fuzzing with mcpsec found 108 crashes out of 925 test cases (11.7% crash rate).
Timeline
- Feb 21, 2026 - Initial report sent to opensource-security@github.com
- Mar 03, 2026 - Follow-up email sent, no response
- Mar 21, 2026 - Re-verified on v0.33.0, sent detailed report with PoC, no response
- Apr 06, 2026 - GHSA filed after 44 days without acknowledgment
Suggested Fix
func (s *Server) CompletionsHandler(ctx context.Context, params *mcp.CompleteParams) (*mcp.CompleteResult, error) { if params nil || params.Ref nil { return nil, fmt.Errorf("invalid request: missing ref parameter") } // ... rest of handler }
AnalysisAI
Denial of service in GitHub MCP Server versions below 1.1.0 allows any unauthenticated attacker to crash the server by sending a malformed completion/complete JSON-RPC request with missing parameters. The nil pointer dereference occurs before authentication checks, making exploitation trivial. Publicly available exploit code exists, enabling immediate termination of the process.
Technical ContextAI
The GitHub MCP Server is a Go application implementing the Model Context Protocol (MCP) to expose GitHub API resources to AI tools. The vulnerability lies in the CompletionsHandler function in pkg/github/server.go, which dereferences params.Ref without first checking for nil. The root cause is a missing null pointer validation (CWE-476), leading to a runtime panic. Affected builds are tracked by the CPE pkg:go/github.com_github_github-mcp-server for versions prior to the fix.
RemediationAI
Upgrade to GitHub MCP Server version 1.1.0 or later, which introduces nil checks for the request parameters. The vendor advisory at https://github.com/github/github-mcp-server/security/advisories/GHSA-w4q6-qw23-4rg7 confirms the fix. If immediate upgrade is not feasible, restrict network access to the server’s JSON‑RPC endpoint to trusted clients only, though this may disrupt legitimate AI tool integration.
Same weakness CWE-476 – NULL Pointer Dereference
View allSame technique Denial Of Service
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-49875
GHSA-w4q6-qw23-4rg7