T08 · Insecure Dependencies
- Location
SKILL.md:9- Finding
Unpinned Third-Party Python Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 9-13
Vulnerability Type: Unconstrained third-party dependency installation
Risk Level: Mediumyaml metadata: openclaw: requires: bins: [python] install: - id: python-packages kind: pip packages: [python-docx, reportlab]Technical Analysis
The Skill instructs the environment to install
python-docxandreportlabwithout fixed versions, integrity hashes, or a lockfile. Consequently, installation may resolve whichever package versions are available at that time rather than versions that were reviewed with the Skill.This creates a supply-chain exposure: a compromised package release, package-index account, distribution artifact, or dependency of either package could introduce attacker-controlled code after the Skill itself has been audited. Python packages can execute code during installation and whenever their modules are imported by the included scripts.
No evidence indicates that the currently named packages or included scripts are malicious. The issue is the absence of controls ensuring that installed dependency artifacts remain identical to reviewed artifacts.
Attack Path
- An attacker compromises a dependency publisher, its package-index account, a transitive dependency, or a distributed package artifact.
- The attacker publishes a malicious version that still satisfies the unconstrained package names.
- A user or Agent installs the Skill dependencies at a time when the malicious version is selected.
- Attacker-controlled code executes during package installation or when
docxorreportlabis imported. - The payload runs with the privileges and environmental access of the process performing the installation or executing the scripts.
Impact Assessment
Successful exploitation could permit arbitrary code execution under the installing or invoking account. The resulting ...[truncated 314 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin each direct dependency to an explicitly reviewed version, for example:
yaml packages: - python-docx==<reviewed-version> - reportlab==<reviewed-version> - Maintain a lockfile that also fixes all transitive dependencies.
- Require cryptographic hashes for downloaded distributions, such as through a hash-locked requirements file and
pip install --require-hashes. - Retrieve packages only from an explicitly configured trusted package index.
- Review dependency updates before changing pinned versions and use automated vulnerability and provenance checks.
- Install dependencies inside an isolated virtual environment using a non-privileged account.
- Prefer reviewed wheel artifacts and prevent unexpected source builds where operationally practical.
- Pin each direct dependency to an explicitly reviewed version, for example:
