T08 · Insecure Dependencies
- Location
SKILL.md:4- Finding
Unpinned and Unnecessary Third-Party Python Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 4
Vulnerability Type: Supply-chain exposure through an unpinned third-party dependency
Risk Level: MediumVulnerable Code Snippet:
yaml metadata: {"openclaw":{"requires":{"bins":["curl","python3"]},"requires_env":["SKILLBOSS_API_KEY"],"install":[{"id":"python","kind":"pip","package":"requests","bins":[],"label":"Install requests (pip)"}]}}Technical Analysis
The Skill instructs the host to install the
requestspackage without specifying a version, integrity hash, package index, or locked transitive dependency set. Consequently, the package and dependency versions installed are determined by mutable package-index state at installation time rather than by the reviewed Skill artifact.This creates a supply-chain risk: if the package index, a future package release, a transitive dependency, or the host's package-index configuration is compromised, installation or subsequent import could execute code that was not present during this audit. The dependency is also not required for minimum functionality because the Skill already requires
curl, and every documented request can be performed with that existing binary.No evidence was found that the current
requestspackage is malicious. The vulnerability is the unnecessary and non-reproducible dependency installation mechanism, not a confirmed compromise of the named package.Attack Path
- A user installs or enables the Skill on a host that permits Python package installation.
- The installation process resolves the unpinned
requestspackage and its transitive dependencies from the configured package index. - An attacker compromises a resolved package release, a dependency, the configured index, or the package retrieval path.
- The host downloads the attacker-controlled package because no version lock or integrity hash rejects it.
- Malicious package code executes during a supported ...[truncated 1168 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove the
requestsinstallation declaration and Python example if Python support is not essential. Use the already-requiredcurlbinary for the documented HTTPS requests. - If Python support must remain, pin
requestsand every transitive dependency to reviewed versions. - Use a lock file or requirements file containing cryptographic hashes, and install with hash verification such as
pip install --require-hashes. - Explicitly configure an approved HTTPS package index rather than inheriting arbitrary host-level index or mirror settings.
- Install dependencies in an isolated virtual environment under a non-privileged account; do not use system-wide or administrator-level package installation.
- Generate and review a software bill of materials, and continuously scan pinned dependencies for known vulnerabilities.
- Restrict the runtime environment so imported packages can access only the files, environment variables, and network destinations required for the Skill.
- Remove the
