T08 · Insecure Dependencies
- Location
requirements.txt:1- Finding
Unpinned Third-Party Dependencies Create a Mutable Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
requirements.txt:1-5; installation instruction atSKILL.md:165-168
Vulnerability Type: Unpinned third-party dependencies
Risk Level: MediumVulnerable Code
requirements.txt:1-5:text lifelines matplotlib numpy pandas seabornSKILL.md:165-168:bash # Python dependencies pip install -r requirements.txtTechnical Analysis
All dependencies are specified without exact versions or package integrity hashes. Consequently, the documented installation command resolves whichever eligible package versions are available from the configured package index at installation time.
This makes the installed code mutable after the Skill has been reviewed. A newly released, compromised, or otherwise incompatible dependency can be selected without any change to the audited repository. Python packages may execute code during installation and are imported by
scripts/main.py, so compromised dependency code could also execute when the Skill runs.The project does not exhibit typosquatting or explicitly configure an untrusted package index. Exploitation therefore depends on compromise of a dependency release, package index, or dependency-resolution environment.
Attack Path
- An attacker compromises an eligible release of one of the listed packages, its distribution channel, or the package-resolution environment.
- A user follows the documented
pip install -r requirements.txtinstruction. pipresolves the unpinned dependency to attacker-controlled or compromised package content.- Malicious package code executes during installation or when imported by
scripts/main.py. - The payload operates with the permissions of the user or service account performing the installation or analysis.
Impact Assessment
Successful exploitation could provide arbitrary Python code execution with the privileges of the account installing or ru ...[truncated 282 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every direct dependency to a reviewed exact version, for example
package==x.y.z. - Generate and commit a fully resolved lock file that includes transitive dependencies.
- Require package hashes during installation, such as through a hash-locked requirements file and
pip install --require-hashes. - Retrieve packages only from an approved package index over authenticated TLS; disable unintended extra indexes.
- Add automated dependency vulnerability and provenance scanning to the release process.
- Review and deliberately update the lock file rather than allowing installation-time version selection.
- Perform installation and execution in an isolated environment under a least-privileged account.
- Pin every direct dependency to a reviewed exact version, for example
