T08 · Insecure Dependencies
- Location
SKILL.md:17- Finding
Unpinned Third-Party Dependency Is Downloaded at Runtime
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:17-21,SKILL.md:178-183; equivalent unpinned commands also appear inREADME.md:25-60andREADME_CN.md:20-72
Vulnerability Type: Supply-chain risk caused by runtime resolution of an unpinned dependency
Risk Level: MediumVulnerable Code Snippet
markdown ### Format diagnostics Analyze document issues and output a diagnostic report: ```bash uv run --with python-docx python3 scripts/analyzer.py input.docxtext ```markdown ## Dependencies - python-docx Using `uv run --with python-docx` automatically installs it.The same runtime installation pattern is documented for the punctuation and formatting scripts:
bash uv run --with python-docx python3 scripts/punctuation.py input.docx output.docx uv run --with python-docx python3 scripts/formatter.py input.docx output.docx --preset officialTechnical Analysis
The documented commands instruct
uvto resolve and installpython-docxdynamically whenever a script is executed. The project does not provide a pinned version, lockfile, package hash, or other integrity constraint.Consequently, the dependency selected during a future execution may differ from the dependency available when the Skill was audited. The effective trusted codebase includes both
python-docxand its transitive or build dependencies obtained from the configured package index.This does not demonstrate that the current
python-docxpackage is malicious. The security issue is that runtime dependency resolution leaves package selection mutable and exposes execution to package-index compromise, a malicious future release, dependency-source misconfiguration, or manipulation of transitive dependencies.Attack Path
- An attacker compromises a relevant package release, transitive dependency, configured package source, or dependency-resolution environment.
- A user follows the documented `uv r ...[truncated 1319 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
python-docxand all transitive dependencies to reviewed versions. - Commit a
uv.lockfile or an equivalent immutable dependency lockfile. - Use hash verification for downloaded distributions where supported.
- Install dependencies from an explicitly configured, trusted package index rather than relying on ambient package-source configuration.
- Separate dependency installation from document processing. Install and review dependencies during a controlled setup phase instead of downloading them whenever a document is processed.
- Run the scripts in an isolated virtual environment or sandbox with minimal filesystem access and no unnecessary network access.
- Add automated dependency vulnerability and integrity checks to the release process.
- Replace the documented commands with locked execution, for example:
bash uv sync --frozen uv run --frozen python scripts/analyzer.py input.docxThe exact command should match the committed lockfile and supported
uvversion.- Pin
