T08 · Insecure Dependencies
- Location
SKILL.md:293- Finding
Unpinned Third-Party Dependencies Installed from Mutable Package Sources
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 293-295
Vulnerability Type: Unpinned and unhashed third-party dependencies
Risk Level: MediumVulnerable Code Snippet:
bash pip install astropy numpy matplotlib # Optional: lightkurve for preprocessing pip install lightkurveA similar unpinned installation instruction also appears at
SKILL.md:29:bash pip install astropyTechnical Analysis
The installation instructions retrieve mutable package versions and their transitive dependencies from the package index configured for
pip. They do not specify reviewed versions, verify package hashes, use a lockfile, or constrain the package source to an explicitly trusted index.This makes the installation non-reproducible and exposes users to supply-chain risks. A compromised upstream release, compromised package index, dependency confusion condition, or malicious transitive dependency could introduce code that was not present when the Skill was reviewed. Python packages can execute build-system or installation-related code, while installed packages execute with the privileges of the Python environment when imported or invoked.
The listed package names do not appear to be typosquatted, and the audit found no evidence that the Skill intentionally selects malicious packages. The risk arises from the unsafe dependency installation pattern rather than a confirmed malicious dependency.
Attack Path
- A user follows the dependency installation instructions in
SKILL.md. pipresolves the latest available versions from the user's configured package index and recursively resolves transitive dependencies.- An upstream package, transitive dependency, configured mirror, or package-index account is compromised, or an unexpected incompatible release is published.
pipdownloads and installs the altered package without validating it against a project-controlled version lock ...[truncated 934 chars]
- A user follows the dependency installation instructions in
- Remediation
View remediation
Remediation Suggestions
- Pin all direct dependencies to reviewed versions rather than installing unconstrained latest releases.
- Generate and commit a lockfile that includes fully resolved transitive dependency versions.
- Require cryptographic hashes, for example through a hashed requirements file installed with
pip install --require-hashes -r requirements.txt. - Explicitly use a trusted package index and avoid unreviewed mirrors or additional indexes.
- Recommend installation in a dedicated virtual environment with least-privilege user permissions.
- Add automated dependency vulnerability and integrity scanning to the maintenance process.
- Review and update pinned versions on a controlled schedule rather than allowing versions to change implicitly at installation time.
- Avoid running package installation commands with administrator or root privileges.
