T08 · Insecure Dependencies
- Location
skills/filesystem-mcp/SKILL.md:26- Finding
Unpinned Third-Party Packages Are Downloaded and Executed
- Content
View full analysis
Vulnerability Details
File Location:
skills/filesystem-mcp/SKILL.md:26-33,skills/filesystem-mcp/SKILL.md:45-53, andskills/nano-pdf/SKILL.md:5
Vulnerability Type: Unpinned remote dependency installation and execution
Risk Level: MediumVulnerable Code
skills/filesystem-mcp/SKILL.md:26-33:bash # Official reference implementation npm install -g @modelcontextprotocol/server-filesystem # Or build from source git clone https://github.com/modelcontextprotocol/servers cd servers/src/filesystem npm install npm run buildskills/filesystem-mcp/SKILL.md:45-53:json { "mcpServers": { "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "/Users/yourname/Documents", "/Users/yourname/Projects" ] } } }skills/nano-pdf/SKILL.md:5:yaml metadata: {"clawdbot":{"emoji":"📄","requires":{"bins":["nano-pdf"]},"install":[{"id":"uv","kind":"uv","package":"nano-pdf","bins":["nano-pdf"],"label":"Install nano-pdf (uv)"}]}}Technical Analysis
The installation and runtime instructions identify third-party packages by name but do not pin an exact reviewed version or provide an integrity hash. The bundled
package-lock.jsondoes not cover either@modelcontextprotocol/server-filesystemornano-pdf.The
npx -yconfiguration is especially sensitive because it permits npm to resolve, download, and execute the currently available package without interactive confirmation. The code that eventually runs can therefore differ from the code that existed when this skill was reviewed.The global npm installation, source build instructions, and
uvinstaller metadata have the same version-selection weakness. Although no malicious upstream package is present in the audited artifact, compromise of a package release, registry account, dependency chain, or mut ...[truncated 1360 chars]- Remediation
View remediation
Remediation Suggestions
- Pin every remotely installed component to an exact reviewed version, for example
@modelcontextprotocol/server-filesystem@X.Y.Zandnano-pdf==X.Y.Z. - Record and verify package integrity hashes through appropriate lockfiles or installer hash-checking mechanisms.
- Replace runtime
npx -ybootstrap behavior with a separately reviewed installation step and execute a known local binary afterward. - Pin source-based installation to a verified immutable commit rather than cloning and building the current default branch.
- Verify release signatures, publisher identity, and package provenance before updating pins.
- Run third-party tools as an unprivileged user and expose only the minimum necessary directories.
- Prefer read-only MCP access unless modification is explicitly required.
- Test dependency updates in an isolated environment before publishing a revised skill.
- Pin every remotely installed component to an exact reviewed version, for example
