T08 · Insecure Dependencies
- Location
SKILL.md:371- Finding
Unpinned Third-Party Package Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:68andSKILL.md:371-374
Vulnerability Type: Supply-chain exposure through unpinned dependencies
Risk Level: MediumVulnerable Code
At
SKILL.md:68:bash # Dependency installation pip install pandas openpyxl scheduleAt
SKILL.md:371-374:markdown | pandas | Python library | Required | `pip install pandas` | | openpyxl | Python library | Required | `pip install openpyxl` | | schedule | Python library | Required | `pip install schedule` | | secure-smtplib | Python library | Optional | `pip install secure-smtplib` (email notification) |Technical Analysis
The Skill instructs an Agent with
execaccess to install third-party Python packages without exact version constraints, cryptographic hashes, a lockfile, an isolated environment, or an explicitly trusted package index. Package installation may execute package-controlled build or installation logic with the privileges of the Agent process.Mutable dependency resolution means the effective code installed during a future invocation can differ from the code available when this Skill was audited. If a package release, dependency, configured package index, or similarly named package is compromised, installation could introduce attacker-controlled code. The project also provides no implementation or provenance documentation establishing why the optional
secure-smtplibpackage is required.This finding does not establish that any currently named package is malicious. The vulnerability is the unsafe and non-reproducible dependency installation process.
Attack Path
- An Agent loads the Skill and follows its documented setup procedure.
- Because the Skill permits
exec, the Agent runs the unpinnedpip installcommand. pipresolves the latest acceptable packages and transitive dependencies from the configured package index.- An attacker compromises a resolved ...[truncated 1070 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every direct and transitive dependency to a reviewed version using a lockfile or fully constrained requirements file.
- Require cryptographic hashes, for example with
pip install --require-hashes -r requirements.txt. - Install dependencies inside a dedicated virtual environment or disposable sandbox rather than the Agent's global Python environment.
- Configure and document a trusted package index; reject unexpected extra indexes and untrusted mirrors.
- Review package provenance, maintainers, release history, and transitive dependencies before approval.
- Remove
secure-smtplibunless its provenance and necessity are verified. Prefer Python's standard-librarysmtplibwhere it satisfies the requirement. - Run dependency installation and task execution as a non-privileged account with restricted filesystem and network access.
- Add automated dependency scanning and controlled update review so version changes cannot silently alter the installed code.
