T08 · Insecure Dependencies
- Location
skill.md:29- Finding
Unpinned Third-Party Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
skill.md, lines 29-32
Vulnerability Type: Supply-chain risk from mutable dependency resolution
Risk Level: MediumComplete Code Snippet:
markdown ### Installation ```bash pip install yfinance pandastext ### Technical Analysis The installation command does not pin package versions, verify package hashes, use a lockfile, or specify a trusted package index. Consequently, `pip` resolves the latest compatible releases of `yfinance`, `pandas`, and their transitive dependencies from the user's configured index at installation time. This does not prove that either named package is malicious. However, it makes the installed code mutable after the Skill has been reviewed. A compromised upstream release, malicious transitive dependency, dependency-confusion condition, or attacker-controlled pip index could introduce arbitrary package installation or runtime code. ### Attack Path 1. An attacker compromises an upstream package or transitive dependency, or influences the package index configured in the victim's environment. 2. The victim follows the documented `pip install yfinance pandas` command. 3. `pip` resolves mutable, unverified package versions from the configured index. 4. The malicious package is downloaded and installed. 5. Attacker-controlled build, installation, import-time, or runtime code executes under the account running the command. ### Impact Assessment Successful exploitation could execute arbitrary code with the privileges of the user performing the installation or subsequently importing the dependency. The accessible scope may include that user's files, environment variables, application data, network access, and credentials available to the process. The Skill itself does not request elevated privileges, so privilege escalation beyond the installing user's permissions is not established by the reviewed evidence.- Remediation
View remediation
Remediation Suggestions
- Pin all direct and transitive dependencies to reviewed versions in a requirements lockfile.
- Generate and record cryptographic hashes for every approved distribution.
- Install with hash enforcement, for example:
bash python -m pip install --require-hashes -r requirements.txt - Configure an explicit trusted package index or an internally controlled dependency mirror.
- Review and update dependencies through a controlled process that includes vulnerability scanning and provenance verification.
- Prefer prebuilt, verified wheels and prohibit unexpected source builds in production installation workflows.
- Add automated checks that reject unpinned dependencies and lockfile changes lacking security review.
