T08 · Insecure Dependencies
- Location
references/setup-guide.md:22- Finding
Unpinned MCP Package Is Downloaded and Executed Through npx
- Content
View full analysis
Vulnerability Details
File Location:
references/setup-guide.md:22
Vulnerability Type: Unpinned third-party executable dependency
Risk Level: HighVulnerable Code Snippet:
json "command": ["npx", "-y", "@modelcontextprotocol/server-puppeteer"],Technical Analysis
The documented MCP configuration invokes
npxwith the-yoption and identifies the Puppeteer MCP package without an exact version. Consequently, npm can resolve and execute the version currently associated with the package's mutable registry tag.The package is not protected by an exact version constraint, committed lockfile, integrity hash, or manual review prompt. The
-yargument further suppresses installation confirmation. If the package, its maintainer account, one of its transitive dependencies, or the package registry is compromised, hostile code could be delivered after this Skill has already been reviewed.Because an MCP server is an executable local process rather than passive data, the downloaded package runs with the privileges and environment of the user launching Kilo.
Attack Path
- An attacker compromises the referenced npm package, a transitive dependency, its publishing account, or the relevant registry resolution path.
- The attacker publishes a malicious version that is selected by the unversioned package reference.
- A user configures the MCP server according to the setup guide.
- Kilo starts the server by running
npx -y @modelcontextprotocol/server-puppeteer. npxdownloads and executes the attacker-controlled package without presenting an installation confirmation.- Malicious package initialization or server code runs locally with the invoking user's privileges.
Impact Assessment
Successful exploitation could provide arbitrary code execution under the account running Kilo. Subject to operating-system permissions and sandboxing, the malicious dependency could read or modify pro ...[truncated 299 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the MCP package to a reviewed exact version instead of relying on a mutable registry tag.
- Resolve dependencies during a controlled installation process and commit an appropriate lockfile with integrity metadata.
- Verify package provenance, signatures, and integrity before deployment.
- Use a trusted internal registry or preinstalled, reviewed artifact where practical.
- Avoid
npx -yfor first-time or dynamically resolved execution. Require explicit review before installing or updating executable dependencies. - Disable package lifecycle scripts where compatible with the package and deployment model.
- Run the MCP server in a sandbox or container with a restricted filesystem, minimal environment variables, limited network access, and no unnecessary credentials.
- Establish a controlled dependency-update process that includes security review before changing the pinned version.
