T08 · Insecure Dependencies
- Location
SKILL.md:14- Finding
Unpinned Third-Party Source and Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 14-19
Vulnerability Type: Unpinned third-party dependencies and mutable source installation
Risk Level: Mediumbash # Clone project git clone https://github.com/virattt/ai-hedge-fund /data/workspace/ai-hedge-fund # Install pip install -e /data/workspace/ai-hedge-fund --break-system-packages --quiet pip install yfinance --break-system-packages --quietTechnical Analysis
The documented setup clones the mutable default branch of an external Git repository and installs it without pinning a reviewed commit. It also installs
yfinancewithout a fixed version or package hash. Consequently, the code installed by these commands can change after the Skill has been reviewed.Python package installation can execute package build hooks and other installation logic. If the upstream repository, its maintainer account, the package distribution channel, or a selected dependency release is compromised, attacker-controlled code could execute during installation. The
--break-system-packagesoption further weakens environment isolation by allowing pip to modify a system-managed Python installation.No malicious code was confirmed in the audited local files. The vulnerability is the unsafe and non-reproducible dependency acquisition process documented by the Skill.
Attack Path
- An attacker compromises the upstream Git repository, package publisher account, or relevant distribution infrastructure.
- The attacker adds malicious installation or runtime code to the repository’s default branch or publishes a malicious package version.
- A user follows the setup instructions in
SKILL.md. git cloneretrieves the current, unreviewed upstream content, while pip selects the current unpinned package release and dependencies.- Pip executes attacker-controlled build or installation logic, or installs code that executes when the Skill later launches t ...[truncated 647 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the external Git repository to a specific reviewed commit hash and verify that hash before installation.
- Pin
yfinanceand all transitive dependencies to reviewed versions using a lock file. - Require package hashes, such as through
pip install --require-hashes, to prevent substitution of package artifacts. - Install dependencies in a dedicated virtual environment or isolated container rather than the system Python environment.
- Remove
--break-system-packagesfrom the documented commands. - Review package build metadata and installation hooks before approving dependency updates.
- Automate dependency provenance, vulnerability, and integrity checks in the release process.
