T08 · Insecure Dependencies
- Location
setup.md:16- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Locations:
SKILL.md:7setup.md:16-18
Vulnerability Type: Unpinned executable dependency and insufficient supply-chain integrity controls
Risk Level: MediumComplete Code Snippets:
SKILL.md:7:yaml metadata: {"clawdbot":{"emoji":"📺","requires":{"bins":["yt-dlp"]},"install":[{"id":"brew","kind":"brew","formula":"yt-dlp","bins":["yt-dlp"],"label":"Install yt-dlp (Homebrew)"},{"id":"pip","kind":"pip","package":"yt-dlp","bins":["yt-dlp"],"label":"Install yt-dlp (pip)"}],"os":["linux","darwin","win32"]}}setup.md:16-18:markdown If not installed, offer to help: - "I need yt-dlp to extract transcripts. Want me to help you install it?" - Options: `brew install yt-dlp` (macOS) or `pip install yt-dlp`Technical Analysis
The Skill permits installation of
yt-dlpwithout specifying a reviewed version, dependency lockfile, package hash, or trusted package-index configuration. Consequently, the installed artifact is resolved dynamically at installation time. Its contents may differ from those present when the Skill was audited.Python packages and their transitive dependencies can execute code during installation or subsequent invocation. Therefore, compromise of the upstream package, one of its dependencies, the configured package index, or the package delivery path could turn the documented installation step into arbitrary code execution. Unexpected future releases may also introduce incompatible or vulnerable behavior.
The Homebrew instruction is likewise not version-constrained, although the direct
pip install yt-dlppath presents the clearest instance because it contains no lock or integrity-verification mechanism. No evidence was found that the currentyt-dlppackage is malicious; this finding concerns the absence of dependency integrity controls.Attack Path
- An attacker compromises a future
yt-dlprelease, a transitive depende ...[truncated 1258 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
yt-dlpto a specifically reviewed version rather than installing the latest available release:bash python -m pip install "yt-dlp==REVIEWED_VERSION" - Record cryptographic hashes in a locked requirements file and require hash verification:
text yt-dlp==REVIEWED_VERSION --hash=sha256:EXPECTED_ARTIFACT_HASHbash python -m pip install --require-hashes -r requirements.txt - Review and pin all transitive dependencies where applicable, using a reproducible dependency-locking workflow.
- Explicitly configure and document a trusted package index instead of relying on arbitrary user-level pip configuration.
- Install the dependency in an isolated virtual environment with the minimum required filesystem and account privileges.
- Add a controlled update process in which new versions and artifact hashes are reviewed before changing the pin.
- Apply equivalent provenance and version-control measures to the Homebrew installation path where practical.
- Pin
