T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:33- Finding
Unverified Remote Installer Is Downloaded and Executed Directly
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 33–36
Vulnerability Type:T03: Remote Payload Retrieval and Execution
Risk Level: CriticalVulnerable Code
bash # macOS /bin/bash -c "$(curl -fsSL https://dp-public.oss-cn-beijing.aliyuncs.com/bohrctl/1.0.0/install_bohr_mac_curl.sh)" # Linux /bin/bash -c "$(curl -fsSL https://dp-public.oss-cn-beijing.aliyuncs.com/bohrctl/1.0.0/install_bohr_linux_curl.sh)"Technical Analysis
The installation instructions retrieve shell scripts from an external object-storage URL and pass the returned content directly to Bash. The downloaded payload is not authenticated with a publisher signature or checked against a pinned cryptographic digest before execution.
Although HTTPS protects the connection in transit under normal conditions, it does not protect users if the hosting account, stored object, publishing process, or delivery infrastructure is compromised. The effective code can also be changed after the Skill package has been audited without modifying any local project file.
Attack Path
- An attacker compromises the remote storage object, its publisher account, or the associated delivery infrastructure.
- The attacker replaces one of the installer scripts with a malicious shell payload.
- A user or agent follows the documented prerequisite command.
curldownloads the modified content.- Command substitution passes that content directly to
/bin/bash. - The payload executes with the privileges and environment of the invoking user.
Impact Assessment
Successful exploitation provides arbitrary command execution with the invoking user's privileges. The payload could read accessible files and environment variables, including Bohrium credentials, modify user-owned files, install persistence where permissions permit, replace local tools, or submit and manage remote compute jobs using the victim's account.
The scope is the user's local account and every external ser ...[truncated 160 chars]
- Remediation
View remediation
Remediation Suggestions
- Do not pipe or interpolate remote content directly into a shell.
- Distribute the CLI through a signed, trusted package repository where possible.
- If a standalone installer is required:
- Download it to a newly created local file.
- Publish a version-specific SHA-256 digest through a separate trusted channel.
- Verify the digest before execution.
- Verify a publisher signature using a pinned public key.
- Abort installation if either check fails.
- Pin an immutable release artifact rather than relying on a remotely mutable script.
- Instruct users to inspect the verified local script before running it.
- Avoid running the installer as
rootunless strictly necessary, and document its expected filesystem and network effects.
A safer workflow would resemble:
bash curl -fL -o install_bohr_linux.sh \ https://example.invalid/releases/bohr-1.0.0/install_bohr_linux.sh printf '%s %s\n' 'PINNED_SHA256_VALUE' 'install_bohr_linux.sh' | sha256sum --check - # Verify a publisher signature here as well. bash install_bohr_linux.sh
