T08 · Insecure Dependencies
- Location
README.md:22- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
README.md, lines 22-24
Vulnerability Type: Unpinned third-party dependency and insufficient supply-chain integrity controls
Risk Level: MediumVulnerable Code Snippet:
text ## Dependencies pip install yfinanceTechnical Analysis
The documented installation command retrieves the latest version of
yfinanceand its transitive dependencies from the configured Python package index. The project provides no version constraint, dependency lockfile, package hashes, or provenance verification.Consequently, the code installed by users can change after this project has been audited. Exploitation is conditional on compromise or malicious replacement of the named package, one of its transitive dependencies, or the configured package index. The repository itself does not contain evidence that
yfinanceis malicious.Attack Path
- An attacker compromises a dependency release, a transitive dependency, a maintainer account, or the package index used by the victim.
- The attacker publishes a malicious version that remains compatible with the unconstrained package name.
- A user follows the README and executes
pip install yfinance. - Pip resolves and installs the attacker-controlled release because no approved version or cryptographic hash is enforced.
- Malicious package code executes during installation or when
scripts/wheel_screener.pyimports or invokes the package.
Impact Assessment
Malicious dependency code could execute with the privileges of the user running pip or the screener. Depending on those privileges and the local environment, it could read or modify accessible files, access user-level credentials and environment data, make arbitrary network requests, tamper with Python environments, or execute additional processes.
The potential scope is the invoking user's account and any resources accessible to that account. System-wide impac ...[truncated 169 chars]
- Remediation
View remediation
Remediation Suggestions
- Add a reviewed dependency manifest and pin
yfinanceto an explicitly approved version. - Lock all transitive dependencies using a reproducible dependency-management tool such as
pip-tools, Poetry, or uv. - Generate and verify cryptographic hashes for every resolved distribution, then install with:
bash python3 -m pip install --require-hashes -r requirements.txt - Store the lockfile or fully pinned requirements file in version control and update it through a controlled review process.
- Use automated dependency scanning and provenance checks before approving upgrades.
- Recommend installation in a dedicated virtual environment without administrative privileges.
- Prefer trusted package indexes over unverified mirrors, and document the expected index configuration.
- Add a reviewed dependency manifest and pin
