T08 · Insecure Dependencies
- Location
requirements.txt:4- Finding
Unpinned and Unused Third-Party Dependency Creates Supply-Chain Exposure
- Content
View full analysis
Vulnerability Details
File Location:
requirements.txt:4
Related Locations:README.md:22-24,README.md:70-82,SKILL.md:162-183,scripts/guide.py:91-96,scripts/quickstart.py:251-254
Vulnerability Type: Unpinned and unnecessary third-party dependency
Risk Level: MediumVulnerable Code
text requests>=2.28.0The documentation also recommends bulk installation of externally maintained Skills:
bash clawhub install game-deals weather rss-aggregator password-generator unit-converter clawhub install git-essentials json-formatter ocr-local pdf-toolkit-pro clawhub install cron-manager reminder-skill webhook-handler email-senderTechnical Analysis
The dependency specification accepts any
requestsrelease from version 2.28.0 onward without an exact version, integrity hash, or lock file. Neither Python script importsrequests, making this dependency unnecessary for the currently implemented local guidance and environment-checking functionality.Installing an unnecessary and unpinned package expands the supply-chain attack surface. If the package source, a future release, a transitive dependency, or the configured package index is compromised, package installation may execute attacker-controlled build or installation logic. The risk is increased when users run the documented unrestricted command:
bash pip3 install -r requirements.txtThe project also recommends installing multiple external Skills in bulk without version constraints, integrity verification, publisher validation, or individual capability review. Some recommendations concern high-impact functionality, including SSH management, arbitrary code execution, scheduled tasks, webhooks, and email sending. Although these capabilities are not implemented by this project itself, installing them without review can substantially expand the OpenClaw agent's privileges and attack surface.
Attack Path
...[truncated 1413 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove
requestsbecause it is not imported or required by either Python script. - If online checking is implemented later, pin an exact reviewed version rather than using a lower-bound constraint.
- Generate a lock file and require cryptographic hashes, for example through
pip-compile --generate-hashesandpip install --require-hashes. - Review and pin all transitive dependencies before release.
- Use a trusted package index and prevent fallback to untrusted or user-controlled indexes.
- Replace bulk Skill installation commands with individual, version-pinned installation examples.
- Document each recommended Skill's publisher, source repository, required permissions, and integrity information.
- Require explicit user review and consent before recommending high-capability Skills involving SSH, code execution, scheduled tasks, webhooks, or outbound communications.
- Run third-party Skills with least privilege and isolate them from sensitive configuration, credentials, and unrelated workspace files.
- Remove
