Back to skill

Security audit

Vibe Kanban MCP

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly coherent for controlling a local Vibe Kanban instance, but its setup tells users to run an unpinned npm package as an MCP server.

Review the upstream `vibe-kanban` package before installing, prefer a pinned exact version instead of `@latest`, and understand that the MCP server can create/update Vibe Kanban data and start workspace sessions from your local account.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Error
Location
SKILL.md:29
Finding
Unpinned Third-Party Package Is Downloaded and Executed Automatically## Vulnerability Details **File Location**: `SKILL.md`, line 29 **Vulnerability Type**: Unpinned and mutable third-party dependency execution **Risk Level**: High **Complete Code Snippet**: ```bash mcporter config add vibe_kanban --command npx --arg -y --arg vibe-kanban@latest --arg --mcp ``` ### Technical Analysis The documented configuration registers `npx -y vibe-kanban@latest --mcp` as the command used to start the MCP server. The `@latest` tag is mutable and can resolve to a different package release over time. The `-y` option suppresses the package-installation confirmation, allowing the resolved package to be downloaded and executed without an explicit review step. No exact version, lockfile, integrity hash, or equivalent verification mechanism is specified. Consequently, the effective code executed by this configuration can change after the Skill has been reviewed. A compromised package publisher account, malicious upstream release, or compromised package distribution channel could cause attacker-controlled code to execute through an otherwise legitimate-looking MCP invocation. ### Attack Path 1. An attacker compromises the upstream npm package, its publisher account, or the package publication process. 2. The attacker publishes a malicious version and causes the mutable `latest` tag to resolve to it. 3. A user follows the Skill instructions and registers the provided `npx` command, or previously registered configuration invokes the command again. 4. `npx -y` downloads the malicious release without requesting installation confirmation. 5. The package executes as the MCP server with the permissions and environment of the user running `mcporter`. ### Impact Assessment Successful exploitation permits arbitrary code execution with the privileges of the invoking user. Depending on that user's access, malicious package code could read or modify accessible project files, configuration, environment variables, credent ...[truncated 385 chars]
Remediation
## Remediation Suggestions - Replace `vibe-kanban@latest` with a reviewed, exact package version, such as `vibe-kanban@X.Y.Z`. - Remove unattended `-y` installation from persistent MCP configuration where practical, requiring explicit approval before first installation or upgrade. - Use a lockfile and npm integrity metadata, or an equivalent checksum verification mechanism, to ensure that the installed artifact matches the reviewed dependency. - Install the approved dependency through a controlled setup process and configure `mcporter` to execute that verified local installation rather than downloading code at runtime. - Review package ownership, release provenance, dependency changes, and published artifacts before upgrading. - Introduce an explicit update procedure so version changes are reviewed and tested rather than inherited automatically from the mutable `latest` tag. - Run the MCP server under a least-privileged account with restricted filesystem, credential, and network access to limit the consequences of a supply-chain compromise.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (3)

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
The skill instructs users to install and execute an MCP server via `npx -y vibe-kanban@latest --mcp`, which pulls and runs the latest package version without pinning or integrity verification. This creates a software supply-chain risk: if the package is compromised or a malicious update is published, arbitrary code could execute locally under the user's account.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
This example states that `vibe_kanban` is typically backed by `npx -y vibe-kanban@latest --mcp`, again relying on an unpinned package fetched at runtime. In the MCP context this is especially risky because the launched server is granted a trusted integration role and may process sensitive local/project data or influence downstream agent actions.

External Transmission

Medium
Category
Data Exfiltration
Content
Verify which port is the actual UI:

```bash
curl -sS -D - http://127.0.0.1:<port>/ -o /dev/null | head
```

Pitfall:
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Static analysis

No suspicious patterns detected.