T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:41- Finding
Mutable Remote Repository and Unpinned Dependencies Are Installed and Executed
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 41-44
Vulnerability Type: Remote payload retrieval and insecure software supply chain
Risk Level: HighVulnerable Code
bash git clone https://github.com/openclaw-skills/ai-intelligent-knowledge-base cd ai-intelligent-knowledge-base pip install -r requirements.txt python app.pyTechnical Analysis
The packaged skill does not contain the advertised application implementation. Instead, its installation instructions retrieve the application from an external Git repository and execute it without pinning the repository to a reviewed commit or verifying its integrity.
The subsequent
pip install -r requirements.txtcommand also installs dependencies defined by the remotely retrieved repository. No dependency lock file, package hashes, signatures, or version constraints are available in the audited artifact. Consequently, neither the application code nor its transitive dependencies can be verified from this package.Because the repository's default branch and dependency sources are mutable, the effective payload can change after this skill has been reviewed. A repository compromise, maintainer account compromise, malicious update, dependency confusion attack, or compromised upstream package could introduce attacker-controlled code.
Attack Path
- An attacker compromises the referenced repository, a maintainer account, or one of the packages named in its remotely supplied
requirements.txt. - The attacker adds malicious installation behavior, a malicious Python dependency, or malicious code to
app.py. - A user follows the documented installation procedure and clones the current default branch without selecting a trusted commit.
pip install -r requirements.txtmay execute attacker-controlled package build or installation logic.- The user runs
python app.py, directly executing the remotely supplied payload. - The payload ...[truncated 712 chars]
- An attacker compromises the referenced repository, a maintainer account, or one of the packages named in its remotely supplied
- Remediation
View remediation
Remediation Suggestions
- Include the complete, reviewable application source code in the skill package rather than retrieving executable code at installation time.
- If external retrieval is unavoidable, pin the Git checkout to a specific reviewed commit hash rather than relying on a mutable default branch.
- Verify the downloaded source using a trusted cryptographic signature or an independently distributed checksum before installation or execution.
- Commit a dependency lock file containing exact versions and cryptographic hashes. Install dependencies using hash verification, such as
pip install --require-hashes. - Review and constrain transitive dependencies, and obtain packages only from explicitly configured trusted indexes.
- Run installation and application processes under a dedicated, least-privileged account in an isolated environment or container without unnecessary secrets, host mounts, or network access.
- Perform security review and malware scanning on the pinned application source and every dependency before publishing the skill.
