T08 · Insecure Dependencies
- Location
SKILL.md:139- Finding
Unpinned Third-Party Dependencies Installed from a Mutable Package Index
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 139 and 226-227
Vulnerability Type: Supply-chain exposure through unpinned Python dependencies
Risk Level: MediumRelevant code snippets:
bash # Dependency installation pip install lunardate sxtwlmarkdown | lunardate | Python library | Required | `pip install lunardate` (lunar calendar calculation) | | sxtwl | Python library | Optional | `pip install sxtwl` (precise chart calculation) |Technical Analysis
The skill instructs users or agents to install
lunardateandsxtwlwithout specifying reviewed versions, cryptographic hashes, a lockfile, or a trusted package repository. Consequently, package resolution depends on the mutable state of the default Python package index at installation time.Python packages can execute package-controlled build or installation logic. If a dependency account or release is compromised, an unsafe future version is published, or package resolution is redirected to an untrusted index, following these instructions could execute attacker-controlled code with the privileges of the agent or user running
pip.The quick-start instruction installs both packages even though the dependency table describes
sxtwlas optional. This unnecessarily increases the supply-chain attack surface.There is no evidence that either named package is currently malicious. The confirmed issue is the unsafe, non-reproducible dependency installation practice.
Attack Path
- An attacker compromises a dependency distribution channel, maintainer account, package release, or configured Python package index.
- The attacker publishes a malicious version under a dependency name used by the skill.
- A user or agent follows the documented
pip install lunardate sxtwlinstruction. - Because no versions or hashes are specified,
pipresolves the attacker-controlled release. - Malicious build, installation, or i ...[truncated 666 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every dependency to a specifically reviewed version, for example through a version-controlled requirements file.
- Generate and enforce cryptographic hashes with a command such as
pip install --require-hashes -r requirements.txt. - Use a lockfile or reproducible package-management workflow.
- Explicitly identify the approved package repository and prevent fallback to untrusted indexes.
- Install dependencies in an isolated virtual environment or sandbox under a non-privileged account.
- Remove
sxtwlfrom the default installation command if it is genuinely optional. - Review package provenance and vulnerability information before updating pinned versions.
- Include the dependency manifest in the project so the documented setup can be independently reviewed.
