T08 · Insecure Dependencies
- Location
SKILL.md:24- Finding
Unpinned Third-Party Dependencies Permit Remote Supply-Chain Code Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:24-31,SKILL.md:69-75, andSKILL.md:220-225
Vulnerability Type: Unpinned and unverified third-party dependency execution
Risk Level: HighVulnerable Code
SKILL.md:24-31:bash npm install -g zubeid-youtube-mcp-serverFallback tool (if MCP fails):
bash # yt-dlp for transcript extraction pip install yt-dlpSKILL.md:69-75:bash cd /tmp git clone https://github.com/ZubeidHendricks/youtube-mcp-server cd youtube-mcp-server npm install npm run buildSKILL.md:220-225:bash cd /tmp git clone https://github.com/ZubeidHendricks/youtube-mcp-server cd youtube-mcp-server npm install npm run buildTechnical Analysis
The Skill instructs users or agents to install globally executable npm and Python packages without pinning exact versions. It also offers a fallback that clones the current state of a remote GitHub repository, installs its transitive dependencies, and runs its build scripts.
No package version, Git commit, lockfile, checksum, signature, or other integrity control is specified. Consequently, the code executed during installation or use can change after this Skill has been reviewed. Package lifecycle scripts, build scripts, the MCP server, or transitive dependencies can execute code with the privileges of the invoking user.
This is especially sensitive because the MCP server is expected to receive
YOUTUBE_API_KEY. The claim inSKILL.mdthat the server only contactsgoogleapis.comand has been reviewed cannot be independently verified from this project: the dependency source is not included, and the instructions do not identify the exact reviewed revision.The network access and use of a YouTube API key are necessary for the declared YouTube research functionality. However, passing that credential to mutable, remotely sourced code creates a trust boundary broader than the ...[truncated 1850 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the npm and Python dependencies to exact, reviewed versions rather than installing the latest available release.
- Pin the source-build fallback to a specific reviewed Git commit instead of cloning and executing the repository's mutable default branch.
- Provide and enforce package lockfiles with integrity metadata for all transitive dependencies.
- Publish expected cryptographic checksums or signatures and verify downloaded artifacts before installation or execution.
- Document the precise package versions and Git revision for which the security claims were validated.
- Avoid global npm installation. Install dependencies in an isolated project directory, container, or restricted runtime.
- Disable package lifecycle scripts during installation where feasible, and explicitly review any build or lifecycle scripts that must run.
- Run the MCP server with a minimal environment containing only the required YouTube API key. Do not expose unrelated credentials.
- Restrict the API key to YouTube Data API v3, apply appropriate quotas, monitor its use, and rotate it if unexpected activity occurs.
- Restrict filesystem and outbound network access so the server can reach only the endpoints required for the declared functionality.
- Replace the unverifiable statement that no third-party servers are involved with a qualified statement tied to a specific audited revision and documented network allowlist.
