T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:5
- Finding
- Unpinned Third-Party Python Dependency## Vulnerability Details **File Location**: `SKILL.md`, line 5 **Vulnerability Type**: Unpinned package dependency **Risk Level**: Medium ### Vulnerable Code ```yaml metadata: {"clawdbot":{"emoji":"🛡️","requires":{"bins":["python3"],"python_deps":["PyYAML"]},"install":[{"id":"pip","kind":"pip","packages":["PyYAML"],"label":"Install PyYAML (pip)"}]}} ``` ### Technical Analysis The skill metadata instructs the host to install `PyYAML` from pip without specifying an exact version, package hash, lockfile, or trusted artifact location. Consequently, installation results depend on the package version available from the configured package index at installation time. Although no evidence shows that `PyYAML` itself is malicious, this configuration lacks supply-chain integrity controls. If a dependency release, package-index account, configured mirror, or dependency-resolution path is compromised, the installer could retrieve an altered package. Python package installation can run build or installation logic, depending on the selected distribution and installer behavior. The artifact contains no executable implementation of the documented `safety-guard` command, so no further dependency safeguards or runtime validation could be verified. ### Attack Path 1. A user or automated host installs the skill and processes its pip installation metadata. 2. The installer resolves `PyYAML` without an exact version or cryptographic hash. 3. A compromised upstream release, package-index account, or configured mirror supplies a malicious or unexpectedly changed distribution. 4. The malicious package executes installation/build logic or introduces hostile runtime behavior. 5. That code operates with the privileges and data access of the account or environment performing the installation. This path is conditional on compromise or manipulation of the dependency supply chain; the reviewed files do not establish that such compromise has occurred. ...[truncated 496 chars]
- Remediation
- ## Remediation Suggestions 1. Pin `PyYAML` to an explicitly reviewed version rather than allowing unconstrained resolution. 2. Generate and maintain a lockfile containing exact transitive dependency versions. 3. Require cryptographic hashes for downloaded distributions, such as with pip's `--require-hashes` mode. 4. Prefer a reviewed wheel from a trusted package index and restrict unexpected source builds. 5. Install dependencies inside an isolated virtual environment or container under a least-privileged account. 6. Use a controlled package mirror and monitor dependency releases and security advisories. 7. Add the missing executable implementation to the reviewed package so its dependency usage and runtime security controls can be audited.
