T08 · Insecure Dependencies
- Location
SKILL.md:41- Finding
Unpinned Third-Party Dependency Creates a Mutable Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Locations:
SKILL.md:41SKILL.md:613SKILL.md:620md2docx-spec.md:20-24
Vulnerability Type: Unpinned third-party dependency
Risk Level: MediumVulnerable Code Snippets
SKILL.md:41:yaml install: pip install python-docxSKILL.md:613:text - Requires: `pip install python-docx`SKILL.md:620:text 3. Install python-docx: `pip install python-docx`md2docx-spec.md:20-24:markdown ## Environment Requirements - Python 3.8+ - `python-docx` library — install with: `pip install python-docx` - No other third-party packagesTechnical Analysis
The setup instructions install
python-docxwithout specifying a reviewed version or verifying an integrity hash. Consequently, the exact code installed depends on the package-index state at installation time rather than on a reproducible, audited dependency lock.If the upstream package, a maintainer account, the package index, or the dependency-resolution path is compromised, a malicious or unexpectedly changed release could be selected. The converter necessarily imports the installed package when generating Word documents, allowing code contained in a compromised dependency to execute with the privileges of the Skill runtime.
The package name is legitimate and no malicious package is currently embedded in the project. The vulnerability is the absence of controls that ensure future installations retrieve the same reviewed artifact.
Attack Path
- An operator follows the documented first-time setup instructions and executes
pip install python-docx. - Dependency resolution selects the latest compatible package release because no version or artifact hash is pinned.
- An attacker compromises the upstream release process, package-index account, configured index or mirror, or another relevant dependency-distribution path.
- The installer retrieves the attacker-controlled or modified artifact.
- The Skill invokes ` ...[truncated 954 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
python-docxto a specifically reviewed version in a dependency file rather than installing an unconstrained latest release:
text python-docx==<reviewed-version>- Record hashes for every resolved distribution and require hash verification:
bash python -m pip install --require-hashes -r requirements.txtA representative locked entry should take this form:
text python-docx==<reviewed-version> \ --hash=sha256:<verified-distribution-hash>Include locked and hashed transitive dependencies where applicable.
-
Configure an explicit trusted package index or an internally controlled artifact repository. Avoid silently falling back to additional public indexes.
-
Generate and retain a lock file or software bill of materials so the reviewed dependency set is reproducible.
-
Run installation and document conversion under a dedicated, non-privileged account. Expose only the input and output directories needed for conversion.
-
Do not provide the converter process with
ANTHROPIC_API_KEY,TELEGRAM_BOT_TOKEN, or unrelated credentials. Separate batch submission and document conversion into environments with distinct credentials and permissions. -
Update all duplicated installation instructions in
SKILL.mdandmd2docx-spec.mdso users cannot bypass the locked installation procedure by following an older command.
- Pin
