GitHub Advisoryadvisory · npm
GHSA-6jx8-rcjx-vmwf GitHub Kanban MCP Server vulnerable to Command Injection
HIGH
Official page ↗
- Aliases
- CVE-2025-53818
- Ecosystem
- npm
- Packages
- @sunwood-ai-labs/github-kanban-mcp-server
- Severity
- High
- CVSS vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
- Weaknesses
- CWE-78
- Reviewed
- 2025-07-15
Affected packages
• npm @sunwood-ai-labs/github-kanban-mcp-server: <= 0.3.0 (no fix yet)
Description
The MCP Server at https://github.com/Sunwood-ai-labs/github-kanban-mcp-server/ is written in a way that is vulnerable to command injection vulnerability attacks as part of some of its MCP Server tool definition and implementation.
Vulnerable tool
The MCP Server exposes the tool `add_comment` which relies on Node.js child process API `exec` to execute the GitHub (`gh`) command, is an unsafe and vulnerable API if concatenated with untrusted user input.
Data flows from the tool definition here which takes in `args.issue_number` and calls `handleAddComment()` in this definitino that uses `exec` in an insecure way.
Vulnerable line of code: https://github.com/Sunwood-ai-labs/github-kanban-mcp-server/blob/main/src/handlers/comment-handlers.ts#L8-L23
```js
export async function handleAddComment(args: {
repo: string;
issue_number: string;
body: string;
state?: 'open' | 'closed';
}): Promise {
const tempFile = 'comment_body.md';
try {
// ステータスの変更が指定されている場合は先に処理
if (args.state) {
try {
const command = args.state === 'closed' ? 'close' : 'reopen';
await execAsync(
`gh issue ${command} ${args.issue_number} --repo ${args.repo}`
);
```
Exploitation Proof of Concept
When LLMs are tricked through prompt injection (and other techniques and attack vectors) to call the tool with input that uses special shell characters such as `; rm -rf /tmp;#` (be careful actually executing this payload) and other payload variations, the full command-line text will be interepted by the shell and result in other commands except of `ps` executing on the host running the MCP Server.
Reference example from prior security research on this topic, demonstrating how a similarly vulnerable MCP Server connected to Cursor is abused with prompt injection to bypass the developer's intended command:
Impact
User initiated and remote command injection on a running MCP Server.
Recommendation
• Don't use `exec`. Use `execFile` instead, which pins the command and provides the arguments as array elements.
• If the user input is not a command-line flag, use the `--` notation to terminate command and command-line flag, and indicate that the text after the `--` double dash notation is benign value.
References and Prior work
1. Exploiting MCP Servers Vulnerable to Command Injection
2. Liran's Node.js Secure Coding: Defending Against Command Injection Vulnerabilities
Credit
Disclosed by Liran Tal
Related
Alias · CVE (1)
- CVE-2025-53818 GitHub Kanban MCP Server is a Model Context Protocol (MCP) server for managing GitHub issues in Kanban board format and streamlining LLM… vulnerability
Weakness · CWE (1)
- CWE-78 Improper Neutralization of Special Elements used in an OS Command weakness
References
- https://github.com/Sunwood-ai-labs/github-kanban-mcp-server/security/advisories/GHSA-6jx8-rcjx-vmwf web
- https://nvd.nist.gov/vuln/detail/CVE-2025-53818 advisory
- https://github.com/Sunwood-ai-labs/github-kanban-mcp-server package
- https://github.com/Sunwood-ai-labs/github-kanban-mcp-server/blob/main/src/handlers/comment-handlers.ts#L8 web
- https://github.com/Sunwood-ai-labs/github-kanban-mcp-server/blob/main/src/handlers/tool-handlers.ts#L79 web
- https://github.com/Sunwood-ai-labs/github-kanban-mcp-server/blob/v0.4.0/src/handlers/comment-handlers.ts#L8-L23 web