T08 · Insecure Dependencies
- Location
SKILL.md:242- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 242
Vulnerability Type: Unpinned and unverifiable third-party dependency
Risk Level: MediumVulnerable Code Snippet
bash pip install opentimestamps-clientTechnical Analysis
The setup documentation instructs users to install
opentimestamps-clientwithout specifying an exact version, validating package hashes, or using a reviewed lockfile. Dependency resolution therefore selects the latest package and transitive dependencies available from the configured Python package index at installation time.The effective installed content can change after the Skill has been reviewed. If the upstream package, a transitive dependency, the package index, or the user's package-index configuration is compromised, following the documented command may introduce attacker-controlled code. Source distributions may invoke build backends during installation, while installed package code may execute when subsequently imported or invoked.
This finding is limited to an unsafe dependency-installation practice. The audited project does not itself contain a malicious package payload or executable scripts.
Attack Path
- An attacker compromises the referenced package, one of its transitive dependencies, or a package source trusted by the user's pip configuration.
- The attacker publishes a malicious release that satisfies the unconstrained dependency request.
- A user follows the instruction in
SKILL.mdand runspip install opentimestamps-client. - Pip resolves the mutable package release and its dependencies without checking project-provided hashes.
- Attacker-controlled code may execute through the package build process or when the installed component is subsequently imported or invoked.
- The code runs under the account and environment used for installation or execution.
Impact Assessment
Successful exploitation could provide code executio ...[truncated 567 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to a reviewed exact version, for example:
text opentimestamps-client==<reviewed-version> - Generate and publish a lockfile containing all transitive dependencies.
- Record approved distribution hashes and require verification:
bash python -m pip install --require-hashes -r requirements.txt - Review the selected package release, transitive dependency graph, and package provenance before distribution.
- Install dependencies in an isolated virtual environment under a non-privileged account rather than into the system Python environment.
- Use a controlled package repository or allowlisted internal mirror where appropriate.
- Add automated dependency vulnerability, provenance, and integrity checks to the release process.
- Pin the dependency to a reviewed exact version, for example:
