T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:10- Finding
Mutable Remote Installer Is Downloaded and Executed Without Verification
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 10
Vulnerability Type: Remote payload retrieval and execution
Risk Level: CriticalVulnerable Code
bash curl -fsSL https://raw.githubusercontent.com/felipegoulu/passo-client/main/install.sh | bashTechnical Analysis
The installation instructions download a shell script from a personal GitHub repository and pipe its contents directly into Bash. The URL references the mutable
mainbranch rather than an immutable commit or cryptographically verified release.No checksum, digital signature, pinned revision, local review, or confirmation step protects the execution. Consequently, the code executed by users may differ from the code that existed when the Skill was reviewed. The remote installer is not included in the audited project, so its implementation and the claims that it installs Chromium, VNC, dependencies, and the
passocommand cannot be independently verified from the available artifact.Installing browser and remote-access components may be necessary for the declared functionality. However, granting an unaudited, mutable shell script all permissions of the invoking user exceeds the minimum trust and execution scope necessary to perform that installation safely.
Attack Path
- An attacker compromises or otherwise gains control of the referenced GitHub account or repository.
- The attacker modifies
install.shon themainbranch to include malicious shell commands. - A user follows the installation command in
SKILL.md. curlretrieves the modified script.- The pipe sends the response directly to Bash without integrity verification or inspection.
- The malicious commands execute with the privileges of the invoking user.
Impact Assessment
Successful exploitation permits arbitrary command execution with the invoking user's privileges. This could allow access to that user's files, credentials, browser data, tokens, and other locally available se ...[truncated 532 chars]
- Remediation
View remediation
Remediation Suggestions
- Do not pipe network responses directly into a shell.
- Include the complete installer in the Skill package so it can be reviewed alongside the instructions.
- If remote distribution is required, use an immutable, pinned commit or versioned release rather than the mutable
mainbranch. - Publish and verify a cryptographic checksum or trusted digital signature before execution.
- Download the installer to a local file, inspect it, and execute it only after verification.
- Document every required permission and avoid root execution unless a specific installation step strictly requires it.
- Separate privileged dependency installation from unprivileged application setup, granting elevation only to narrowly scoped commands.
- Pin and audit all dependencies installed by the script.
- Fail closed if integrity or signature verification does not succeed.
A safer installation pattern would resemble:
bash curl -fSLo install.sh "https://example.invalid/releases/passo/install.sh" echo "EXPECTED_SHA256 install.sh" | sha256sum --check - less install.sh bash install.shThe placeholder URL and digest must be replaced with a trusted, immutable release location and its independently published checksum.
