T08 · Insecure Dependencies
Warning
- Location
SKILL.md:198- Finding
Unpinned Third-Party Python Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 198-202
Vulnerability Type: Supply-chain risk from mutable, unverified dependencies
Risk Level: MediumThe skill recommends the following installation command:
markdown ## Dependencies ```bash pip install lightkurve transitleastsquares numpy matplotlib scipytext ### Technical Analysis The command installs five third-party Python packages without pinned versions, package hashes, a lock file, or an explicitly trusted package index. Consequently, dependency resolution is mutable: the artifacts and transitive dependencies installed at execution time may differ from those reviewed when the skill was published. Python package installation can execute package-controlled build and installation logic. If a named package, one of its transitive dependencies, or the package repository is compromised, following this instruction could cause attacker-controlled code to run during installation or later import. This finding does not establish that any listed package is currently malicious; it identifies an unsafe dependency acquisition practice. ### Attack Path 1. A user or agent follows the dependency installation instruction. 2. `pip` resolves the latest compatible releases and their transitive dependencies from its configured package index. 3. An attacker compromises a package release, maintainer account, transitive dependency, or relevant distribution channel. 4. `pip` downloads the compromised artifact because no reviewed versions or hashes constrain resolution. 5. Malicious package logic executes during build or installation, or when the package is subsequently imported by an analysis workflow. 6. The payload operates with the permissions and environment access of the account running `pip`. ### Impact Assessment Successful exploitation could permit arbitrary code execution with the privileges of the installing user or agent. Depending on that a ...[truncated 361 chars]- Remediation
View remediation
Remediation Suggestions
- Pin all direct and transitive dependencies to reviewed versions in a lock file.
- Require cryptographic hashes, for example with:
bash python -m pip install --require-hashes -r requirements.txt - Generate the requirements file through a controlled dependency-resolution process and review dependency changes before updating it.
- Configure an explicitly trusted package index or an internally controlled package mirror.
- Install dependencies in an isolated virtual environment or container under a non-privileged account.
- Avoid running
pipas root or with administrative privileges. - Scan pinned packages and transitive dependencies for known vulnerabilities and provenance concerns.
- Rebuild and verify the lock file periodically through a documented update process.
