T03 · Remote Payload Retrieval and Execution
- Location
README.md:26- Finding
Remote Installer Is Downloaded and Executed Without Integrity Verification
- Content
View full analysis
Vulnerability Details
File Location:
README.md:26andSKILL.md:19
Vulnerability Type: Remote payload retrieval and immediate execution
Risk Level: HighVulnerable Code
README.md:26:bash curl -fsSL https://raw.githubusercontent.com/manikal/hide-my-email/v1.0.1/install.sh | shSKILL.md:19:yaml command: "curl -fsSL https://raw.githubusercontent.com/manikal/hide-my-email/v1.0.1/install.sh | sh"Technical Analysis
These installation instructions stream content from an external GitHub URL directly into a shell. The downloaded content is not saved for inspection and is not authenticated using a hard-coded cryptographic checksum or trusted signature.
Although the URL refers to the
v1.0.1tag, a Git tag is not an immutable cryptographic integrity guarantee from the consumer's perspective. The effective installer remains controlled by an external repository that is outside this audited package. Compromise of the repository owner, removal and recreation of the tag, or compromise of the delivery path could alter the commands that users execute.This behavior is not necessary for the declared functionality. A Hide My Email utility can be distributed as locally reviewable files or as a release artifact verified before execution. Directly piping remote content to a shell introduces avoidable code-execution risk.
The danger is amplified because the documentation subsequently asks the user to grant Terminal macOS Accessibility permission. That permission is relevant to UI automation, but any malicious code executed in the same authorized Terminal context may be able to automate applications and interact with sensitive user-interface elements. The reviewed command does not use
sudo, so there is no evidence that it directly obtains root privileges.Attack Path
- An attacker compromises the upstream GitHub account or repository, or otherwise gains control over content served fo ...[truncated 1175 chars]
- Remediation
View remediation
Remediation Suggestions
-
Remove all
curl | shinstallation instructions fromREADME.mdandSKILL.md. -
Include the installer and executable source files directly in the reviewed Skill package where feasible.
-
If remote distribution is required, download the artifact without executing it:
bash curl -fL -o install.sh https://example.invalid/releases/v1.0.1/install.sh -
Publish and enforce a full, hard-coded SHA-256 digest from a separately controlled trusted channel:
bash echo '<EXPECTED_SHA256> install.sh' | shasum -a 256 -c - -
Execute the installer only after successful verification and provide users an opportunity to inspect it.
-
Prefer a signed and immutable release artifact. Verify the signing identity rather than relying solely on a Git tag.
-
Clearly explain that Accessibility authorization should be granted only to the narrowest required executable or terminal environment and only after all installed code has been verified.
-
