T03 · Remote Payload Retrieval and Execution
- Location
references/setup.md:49- Finding
Unverified Remote Installer Download and Execution
- Content
View full analysis
Vulnerability Details
File Location:
references/setup.md, lines 49–52
Vulnerability Type: Unverified remote payload retrieval and execution
Risk Level: Highbash curl -sSfL https://raw.githubusercontent.com/auth0/auth0-cli/main/install.sh -o /tmp/auth0-install.sh echo "⚠️ Review the install script at /tmp/auth0-install.sh before running" sh /tmp/auth0-install.sh -b /usr/local/bin rm /tmp/auth0-install.shTechnical Analysis
The automated setup downloads a shell script from the mutable
mainbranch of an external GitHub repository and executes it without verifying a cryptographic checksum, digital signature, release provenance, or immutable commit identifier.Although the script prints a message asking the user to review the downloaded file, it does not pause or request confirmation before executing it. Consequently, the review instruction provides no effective security boundary. The predictable
/tmp/auth0-install.shpath also creates avoidable exposure to local file-replacement or symlink attacks in environments where another user can manipulate that path.Installing the Auth0 CLI is relevant to the declared setup functionality, but dynamically executing an unverified installer exceeds the minimum privileges necessary. A package-manager installation or a pinned, integrity-verified release would provide the required functionality with less supply-chain risk.
Attack Path
- An attacker compromises the upstream repository, a maintainer account, or the delivery path, or otherwise causes the mutable
main/install.shcontent to become malicious. - The setup downloads the modified script to
/tmp/auth0-install.sh. - No signature, digest, pinned commit, or expected-content validation detects the modification.
- Execution proceeds immediately via
sh /tmp/auth0-install.sh -b /usr/local/bin; no actual user-review pause occurs. - The remote payload executes with all permissions available ...[truncated 1063 chars]
- An attacker compromises the upstream repository, a maintainer account, or the delivery path, or otherwise causes the mutable
- Remediation
View remediation
Remediation Suggestions
- Prefer an official package manager with signed repository metadata and pinned release versions.
- If direct download is unavoidable, use an immutable release artifact or commit rather than the mutable
mainbranch. - Verify a publisher-provided SHA-256 digest or cryptographic signature before execution, and fail closed on any mismatch.
- Split download and execution into separate steps. Stop after downloading and require explicit user confirmation after review before running the script.
- Create the temporary file securely with
mktemp, restrictive permissions, and cleanup through a shelltrap; do not use a predictable shared/tmppathname. - Avoid elevated execution unless strictly required. Prefer installation into a user-controlled binary directory and clearly disclose any requested system-wide changes.
- Retain or log the verified version, source commit, and digest to support reproducibility and incident investigation.
