T08 · Insecure Dependencies
- Location
SKILL.md:4- Finding
Unpinned Third-Party Python Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 4 and 65
Vulnerability Type: Unpinned package installation from a mutable third-party registry
Risk Level: MediumVulnerable Code
SKILL.md:4:yaml metadata: {"openclaw":{"requires":{"bins":["curl","python3"]},"install":[{"id":"python","kind":"pip","package":"requests","bins":[],"label":"Install requests (pip)"}]}}SKILL.md:65:markdown | `requests` | HTTP client library | `pip install requests` |Technical Analysis
The skill declares and recommends installation of the
requestspackage without an exact version constraint or package integrity hash. As a result, the installed artifact is selected from mutable package-index state at installation time rather than from a reproducible, previously reviewed dependency set.Python package installation can execute package build or installation logic. If the upstream package, its account, the package registry, the dependency-resolution path, or a transitive dependency were compromised, skill installation could introduce attacker-controlled code into the agent environment. An unexpected upstream release could also cause compatibility or behavioral changes even without malicious compromise.
The package name shown is the legitimate
requestsname rather than an evident typosquat. The risk arises from unpinned and unverified dependency resolution; the audited file does not itself demonstrate that the current upstream package is malicious.Attack Path
- An operator installs or enables the skill.
- The skill installer processes the pip dependency declaration for the unconstrained package name
requests, or the operator follows the documentedpip install requestscommand. - pip resolves the package and applicable transitive dependencies using the package index's current mutable state.
- If a resolved distribution or its supply-chain path has been compromised, pip downloa ...[truncated 871 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
requeststo an exact, reviewed version in the skill metadata, such asrequests==X.Y.Z. - Use a lock file or requirements file containing cryptographic hashes and install with pip's
--require-hashesoption. - Pin and hash all transitive dependencies, not only the direct dependency.
- Retrieve packages only from an explicitly configured, trusted package index or an internally controlled artifact repository.
- Install dependencies inside an isolated virtual environment under a non-privileged account.
- Add automated dependency vulnerability and provenance checks to the release process.
- Keep the documentation consistent with the secured installation method; replace
pip install requestswith the pinned, hash-verified command. - If practical, avoid the additional runtime dependency by using a suitable preinstalled client or Python's standard-library HTTP functionality.
- Pin
