T08 · Insecure Dependencies
- Location
SKILL.md:64- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:64
Vulnerability Type: Unpinned third-party dependency
Risk Level: MediumVulnerable Code
markdown - Requires `yfinance` (`pip install yfinance`)The package is subsequently imported at
scripts/trend_strategy.py:7:python import yfinance as yfTechnical Analysis
The documentation instructs users to install
yfinancewithout specifying a reviewed version, cryptographic hashes, a lockfile, or other integrity controls. The command therefore resolves a mutable package version and its transitive dependencies at installation time.The package name is legitimate and there is no evidence that the project intentionally selects a malicious dependency. Nevertheless, the effective code installed by a user is not fully determined by the audited project. A compromised upstream release, compromised package repository, or malicious transitive dependency could introduce code that was not present during this review. Such code may execute during package installation, module import, or subsequent use.
Attack Path
- A user follows the setup instruction in
SKILL.md. - The user runs
pip install yfinance. pipresolves the current package release and its transitive dependencies from the configured package index.- If an upstream package, release, dependency, index, or resolution path has been compromised, malicious code is installed.
- The malicious component executes with the permissions of the user running
pip, either during installation, whenyfinanceis imported, or when the analysis is performed.
This is a supply-chain exposure rather than evidence of an actively malicious package in the audited repository.
Impact Assessment
Successful exploitation could execute arbitrary code with the privileges of the user who installs or runs the dependency. The resulting scope could include access to files, environment variables, network resources, and credentials availa ...[truncated 386 chars]
- A user follows the setup instruction in
- Remediation
View remediation
Remediation Suggestions
- Pin
yfinanceand all transitive dependencies to versions that have been reviewed and tested. - Store the dependency definitions in a committed requirements or lock file instead of relying on an unconstrained installation command.
- Generate and verify cryptographic hashes, for example by using a hash-locked requirements file with
pip install --require-hashes. - Install dependencies in an isolated virtual environment or container under a non-privileged account.
- Configure
pipto use a trusted package index and avoid unreviewed additional indexes. - Use automated dependency vulnerability and provenance scanning, and update pinned versions through a controlled review process.
- Replace the documented command with a reproducible installation command referencing the locked dependency file.
- Pin
