T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:63- Finding
Mutable Remote Shell Script Downloaded and Executed Without Verification
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:63
Vulnerability Type: Remote payload retrieval and immediate execution
Risk Level: Criticalbash curl -fsSL https://raw.githubusercontent.com/laiye-ai/adp-cli/main/scripts/adp-init.sh | bashTechnical Analysis
The installation command retrieves a shell script from the mutable
mainbranch of an external GitHub repository and pipes it directly tobash. The payload is neither included in the audited project nor pinned to an immutable commit or release. No checksum or cryptographic signature is verified before execution.As a result, the effective code executed by this Skill can change after the Skill has been reviewed. HTTPS protects data in transit but does not protect against compromise of the upstream repository, maintainer credentials, release process, or GitHub account. The pipe also prevents users from reviewing the complete downloaded artifact before it begins executing.
Installing a CLI is necessary for the declared document-extraction workflow, but executing an unverified mutable script is not the minimum privilege or minimum trust mechanism required. A pinned and integrity-verified package or release artifact would provide the same functionality with substantially lower risk.
Attack Path
- An attacker compromises a maintainer account, repository token, GitHub organization, or another mechanism capable of modifying the upstream
mainbranch. - The attacker modifies
scripts/adp-init.shto include malicious shell commands. - A user or AI Agent follows the installation instructions in
SKILL.md. curlretrieves the attacker-controlled version of the script.- The pipe sends the content directly to
bashwithout inspection or integrity verification. - The payload executes with all permissions available to the invoking user.
Impact Assessment
A successful attack permits arbitrary command execution with the privilege ...[truncated 607 chars]
- An attacker compromises a maintainer account, repository token, GitHub organization, or another mechanism capable of modifying the upstream
- Remediation
View remediation
Remediation Suggestions
- Remove the direct
curl | bashinstallation method. - Pin the installer or binary to an immutable release version or Git commit rather than the mutable
mainbranch. - Publish SHA-256 checksums for release artifacts and require verification before execution.
- Prefer cryptographically signed releases and verify the signature against a documented vendor key.
- Download the artifact to a local file first, inspect and verify it, and only then execute it explicitly.
- Prefer a pinned package-manager installation, such as a reviewed npm package version, rather than an unconstrained latest release.
- Run installation with an unprivileged account and avoid
sudounless a specific, documented operation requires elevation. - Document what files, directories, network endpoints, and environment settings the installer changes.
- Remove the direct
