T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:51- Finding
Unreviewed Remote Payload Retrieval and Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 51–104
Vulnerability Type: Remote code retrieval and execution
Risk Level: CriticalThe Skill instructs the Agent to clone a mutable external GitHub repository and execute several Bash scripts obtained from that repository.
bash git clone https://github.com/sunt23310-ops/openclaw-security-audit.git ~/openclaw-security-auditbash AUDIT_DIR="$HOME/openclaw-security-audit"bash bash "$AUDIT_DIR/checks/gateway.sh" && bash "$AUDIT_DIR/checks/credentials.sh"bash for check in gateway credentials channels tools network system; do bash "$AUDIT_DIR/checks/${check}.sh" donebash bash "$AUDIT_DIR/fixes/interactive-fix.sh"bash bash "$AUDIT_DIR/fixes/gateway-fix.sh" bash "$AUDIT_DIR/fixes/permission-fix.sh" bash "$AUDIT_DIR/fixes/channel-fix.sh"bash bash "$AUDIT_DIR/audit.sh"Technical Analysis
The effective executable payload is not included in the audited project. Instead, it is retrieved at runtime from the default branch of an external repository. The instructions do not pin an immutable commit, verify a cryptographic hash or publisher signature, or require inspection of the downloaded scripts before execution.
Consequently, the behavior reviewed in
SKILL.mdis not necessarily the behavior that will execute later. The repository owner—or an attacker who compromises the repository, maintainer account, or relevant delivery path—can replace the referenced scripts after this Skill has been reviewed.The downloaded scripts are invoked directly through Bash. They therefore execute with the permissions of the user running the Agent and can perform operations beyond the stated security-audit purpose. The claim that the tool is read-only by default cannot be independently validated because the implementation is absent from the project.
Attack Path
- An attac ...[truncated 1429 chars]
- Remediation
View remediation
Remediation Suggestions
- Bundle the complete, reviewed audit implementation inside the Skill package so that the audited content is identical to the executed content.
- If external retrieval is unavoidable, pin the repository to a specific immutable commit rather than cloning the mutable default branch.
- Publish expected SHA-256 hashes for every executable file and verify them before execution. Abort on any mismatch.
- Require cryptographically signed commits or release artifacts and validate signatures against an explicitly trusted maintainer key.
- Display or statically inspect downloaded scripts before execution, including recursively referenced scripts and binaries.
- Execute checks in a restricted sandbox with minimal filesystem access, no unnecessary credentials, and network access disabled unless a particular check explicitly requires it.
- Separate read-only checks from mutation-capable fixes. Require explicit, informed confirmation immediately before every state-changing action.
- Never elevate downloaded code directly. If privileged changes are necessary, use a small, bundled, reviewed helper with a narrowly defined interface.
- Document all files, commands, network destinations, and sensitive resources that each check may access.
