T08 · Insecure Dependencies
- Location
SKILL.md:82- Finding
Unpinned Third-Party Dependencies Installed from Mutable Package Repositories
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 82-84
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumVulnerable Code Snippet:
markdown ### Dependencies - `Pillow` (pip3 install Pillow) - Chinese font: `wqy-zenhei` (`apt install fonts-wqy-zenhei`)Technical Analysis
The skill directs the agent to install Pillow and a system font without pinning package versions or verifying package integrity. Commands such as
pip3 install Pillowresolve whichever compatible release the configured package repository supplies at installation time. The reviewed skill therefore does not fully determine the code that will ultimately be installed and executed.The system package instruction similarly omits a version constraint and repository trust requirements. Although no malicious dependency is included in the audited project and the package names do not appear to be typographical imitations, using mutable, unverified dependency sources creates supply-chain exposure. A compromised repository, compromised package release, malicious package-index configuration, or unexpected future dependency change could introduce code that was not covered by this audit.
Attack Path
- A user invokes the image-watermarking skill on a host where the stated dependencies are unavailable.
- The agent follows the dependency instructions and runs
pip3 install Pillowand potentiallyapt install fonts-wqy-zenhei. - The package managers resolve packages using the host's currently configured repositories, mirrors, and version-selection rules.
- If a selected repository, mirror, package release, or local package-manager configuration has been compromised, attacker-controlled package content is downloaded.
- Malicious package installation behavior or subsequently imported library code executes with the privileges of the package installation or skill runtime.
This is a conditional supply-chain att ...[truncated 830 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin Pillow to a specifically reviewed version rather than installing the latest available release, for example through a locked requirements file.
- Use cryptographic hash verification, such as pip's
--require-hashes, and obtain artifacts only from an explicitly trusted package index. - Pin the system package version where practical and document the trusted operating-system repository and supported distribution release.
- Do not install dependencies automatically during ordinary skill execution. Detect missing dependencies and request explicit operator approval before changing the environment.
- Prefer a prebuilt, reproducible, minimally privileged runtime image containing audited dependencies.
- Run image processing in a sandbox with restricted filesystem and network access, and never grant package installation privileges to the normal skill runtime.
- Add dependency inventory and vulnerability scanning to the release process, and review dependency updates before changing pinned versions.
