T08 · Insecure Dependencies
- Location
SKILL.md:12- Finding
Unpinned Third-Party Package Installation Creates a Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 12–15 and 52–62
Vulnerability Type: Unpinned external dependencies installed from package registries
Risk Level: MediumThe skill instructs users or agents to install
md-exporterwithout specifying an exact version, integrity hash, lockfile, or immutable source revision.Vulnerable code snippets:
SKILL.md, lines 12–15:yaml install: - kind: uv package: md-exporter bins: [ markdown-exporter ]SKILL.md, lines 52–62:markdown ### Installation ```bash # with pip pip install md-exporter # with uv uv tool install md-exporter # on OpenClaw npx clawhub install markdown-exportertext ### Technical Analysis These installation methods dynamically resolve packages from external registries. Because no exact package version, cryptographic hash, lockfile, or immutable source commit is specified, the code installed at a later date can differ from the code originally reviewed. The artifact contains only `SKILL.md` and does not include the dependency implementation. Consequently, the behavior of the installed CLI cannot be verified from this project. This does not establish that the current package is malicious, but it leaves the installation process exposed to upstream account compromise, malicious future releases, registry compromise, or dependency substitution. ### Attack Path 1. An attacker compromises the publisher account, package registry entry, distribution infrastructure, or a future release of `md-exporter`. 2. The attacker publishes a malicious version under the package name used by the skill. 3. A user or agent follows the documented `pip`, `uv`, or ClawHub installation command. 4. The package manager resolves and installs the attacker-controlled release because the dependency is not pinned to a reviewed artifact. 5. Malicious code executes during package installation or when `markdow ...[truncated 629 chars]- Remediation
View remediation
Remediation Suggestions
- Pin
md-exporterto an exact, reviewed version in both the skill metadata and every installation example. - Require cryptographic integrity verification, such as package hashes in a requirements file used with
pip --require-hashes. - Provide a reproducible lockfile that records all transitive dependency versions and integrity information.
- Reference an immutable, audited source commit or signed release rather than a mutable package name alone.
- Document the expected package registry and reject untrusted indexes or alternate package sources.
- Verify release signatures or provenance attestations where supported.
- Perform installation and document conversion in an isolated, least-privileged environment with access limited to necessary input and output paths.
- Add automated dependency and provenance scanning before updating the pinned version.
- Pin
