T08 · Insecure Dependencies
- Location
SKILL.md:268- Finding
Unpinned Third-Party Dependencies Create Supply-Chain Exposure
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:268,SKILL.md:292,README.md:12, andskill.json:13
Vulnerability Type: Unpinned and unnecessary third-party dependencies
Risk Level: MediumComplete Code Snippets:
SKILL.md:268:bash pip install python-docx markdownSKILL.md:292:text pip install python-docxREADME.md:12:bash pip install python-docxskill.json:12-14:json "dependencies": { "python": ["python-docx", "markdown"] }Technical Analysis
The project instructs users to install third-party packages without version constraints, integrity hashes, or a lockfile. Consequently, package resolution depends on the mutable state of the configured Python package index at installation time.
If an upstream release, maintainer account, package index, or dependency artifact is compromised, the installation process could retrieve attacker-controlled code. Python packages may execute build-system or installation logic during installation, and imported packages execute module initialization code at runtime.
The declared
markdownpackage is not imported by any reviewed Python script. Keeping this unused dependency unnecessarily expands the software supply-chain attack surface.No evidence shows that the currently named packages are malicious. The vulnerability is the unsafe, non-reproducible dependency acquisition process.
Attack Path
- A user follows the documented installation command or an agent processes the dependencies declared in
skill.json. pipresolves the latest package versions available through the environment's configured package index.- An attacker compromises an upstream release, publishing account, index, mirror, or resolved dependency artifact.
- The unpinned installation retrieves the compromised artifact because no approved version or cryptographic hash is enforced.
- Malicious installation or i ...[truncated 710 chars]
- A user follows the documented installation command or an agent processes the dependencies declared in
- Remediation
View remediation
Remediation Suggestions
- Remove the unused
markdowndependency unless a reviewed implementation genuinely requires it. - Pin every direct dependency to an explicitly reviewed version.
- Generate a lock or requirements file containing hashes for all direct and transitive artifacts.
- Install with hash enforcement, for example:
bash python -m pip install --require-hashes -r requirements.txt - Configure installations to use an explicitly trusted package index or an internally controlled artifact repository.
- Perform dependency installation in an isolated virtual environment using an unprivileged account.
- Add automated dependency vulnerability and provenance checks to the release process.
- Keep
README.md,SKILL.md, andskill.jsonsynchronized so they all specify the same reviewed dependency set.
- Remove the unused
