T08 · Insecure Dependencies
- Location
SKILL.md:219- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 219-222, 306-308, and 368
Vulnerability Type: Supply-chain risk caused by unpinned package installation
Risk Level: MediumVulnerable Code
bash # Lines 219-222 pip3 install yt-dlp # ... # Or install with brew (macOS) brew install yt-dlpbash # Lines 306-308 pip3 install yt-dlp # Or brew install yt-dlpbash # Line 368 pip3 install yt-dlpTechnical Analysis
The Skill directs the Agent to install
yt-dlpwithout pinning an exact, reviewed version and without verifying a package hash or signature. Consequently, the installed artifact is determined by mutable package-registry or package-manager state at execution time rather than by the reviewed Skill package.This is a supply-chain weakness: compromise of the upstream package, maintainer account, package registry, configured mirror, package-manager repository, or a transitive dependency could cause malicious code to be installed. Python packages may execute build or installation logic, and installed command-line programs execute code when invoked. The Skill also declares the
exectool, making automated execution of the installation instructions plausible.The audit did not establish that the legitimate
yt-dlppackage is malicious. The vulnerability is the absence of dependency pinning and integrity controls.Attack Path
- An attacker compromises the upstream package, a maintainer account, a configured registry or mirror, or relevant dependency distribution infrastructure.
- The compromised source publishes or serves a malicious package version or dependency.
- A user asks the Agent to use the Skill on a system where
yt-dlpis unavailable. - Following
SKILL.md, the Agent executespip3 install yt-dlporbrew install yt-dlp. - The package manager resolves the mutable dependency and installs attacker-controlled content.
- Malic ...[truncated 737 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
yt-dlpto an exact version that has been reviewed and tested, rather than installing the latest available release. - For
pip, require package hashes through a locked requirements file, for example withpip install --require-hashes -r requirements.txt. - Store the exact version and expected cryptographic hashes in the Skill package and update them only through a controlled review process.
- Use a trusted, explicitly configured package index or internally controlled artifact repository.
- Install the dependency in an isolated virtual environment or container under a non-privileged account.
- Avoid
sudo, administrator execution, and system-wide package installation. - Apply equivalent version-locking and repository-trust controls if Homebrew remains a supported installation method.
- Add a preflight check that reports a missing dependency instead of automatically installing software without explicit user approval.
- Pin
