T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:247
- Finding
- Unverified Retrieval and Execution of Third-Party Dependencies## Vulnerability Details **File Location**: `SKILL.md:247-282`, `SKILL-cn.md:247-282`, and `requirements.txt:1-2` **Vulnerability Type**: Supply-chain integrity failure **Risk Level**: Medium The installation instructions retrieve executable dependencies without cryptographic integrity verification. Python dependencies are also specified using open-ended minimum versions rather than exact, hash-locked versions. ```bash pip install -r requirements.txt ``` ```text pillow>=12.0.0 python-pptx>=1.0.0 ``` ```bash # Navigate to AutoPlantUMLEdit skill directory first curl -L -o "scripts/plantuml.jar" "https://github.com/plantuml/plantuml/releases/download/v1.2026.2/plantuml-1.2026.2.jar" ``` ```powershell # Navigate to AutoPlantUMLEdit skill directory first Invoke-WebRequest -Uri "https://github.com/plantuml/plantuml/releases/download/v1.2026.2/plantuml-1.2026.2.jar" -OutFile "scripts/plantuml.jar" ``` ```bash java -jar scripts/plantuml.jar -version ``` ### Technical Analysis `plantuml.jar` contains executable Java bytecode. The documented workflow downloads this artifact and executes it without first comparing it against a trusted SHA-256 digest or validating a cryptographic signature. HTTPS protects the network connection but does not establish that the upstream account, release artifact, or hosting infrastructure has not been compromised. The Python requirements use `>=` constraints. Consequently, installations performed at different times can resolve to different package versions that were not present during this audit. There is no lock file or package hash enforcement to guarantee artifact identity. This weakens build reproducibility and permits an unexpectedly compromised future release to enter the execution environment. ### Attack Path 1. An attacker compromises an upstream release, package publishing account, distribution channel, or artifact referenced by the installation instructions. 2. The a ...[truncated 1308 chars]
- Remediation
- ## Remediation Suggestions 1. Pin every Python dependency to an exact reviewed version instead of using minimum-version constraints. 2. Generate a hash-locked requirements file and require hash verification during installation, for example with `pip install --require-hashes -r requirements.txt`. 3. Publish the expected SHA-256 digest of `plantuml.jar` in a trusted, version-controlled project file. 4. Verify the JAR checksum before every execution and terminate with an error if verification fails. 5. Where available, validate an upstream cryptographic signature in addition to the checksum. 6. Prefer packaging a reviewed PlantUML artifact with the release or retrieving it through a trusted package manager that supports signature and integrity verification. 7. Perform dependency installation and diagram conversion as a non-privileged user in a sandbox or container with only the necessary filesystem and network access. 8. Add automated dependency scanning and scheduled review of pinned versions, updating hashes only after the new artifacts have been reviewed.
