T03 · Remote Payload Retrieval and Execution
- Location
- SHARE.md:24
- Finding
- External Skill Archive Is Downloaded and Executed Without Enforced Integrity Verification<![CDATA[ ## Vulnerability Details **File Location**: `SHARE.md`, lines 24-39 **Vulnerability Type**: Remote payload retrieval and execution through an inconsistent, unverified release source **Risk Level**: High ### Vulnerable Code ```bash wget https://github.com/your-username/browser-toggle/releases/download/v1.0.0/browser-toggle-v1.0.0.tar.gz sha256sum browser-toggle-v1.0.0.tar.gz tar -xzf browser-toggle-v1.0.0.tar.gz cd browser-toggle-v1.0.0 bash setup.sh ``` ### Technical Analysis The installation instructions direct users to retrieve a Skill archive from an external GitHub namespace, extract it, and execute the included `setup.sh` script. The referenced `your-username` namespace is a placeholder and conflicts with the `yoo-unison` repository identity declared in `SKILL.md` and the placeholder repository metadata in `package.json`. A SHA-256 digest is documented, but the procedure merely prints the downloaded file's digest. It does not compare the result automatically against the expected value, and installation proceeds independently of verification. This makes the protection dependent on a user manually noticing a mismatch. Because the archive is retrieved at installation time rather than being part of the audited artifact, its effective executable contents can differ from the reviewed code. The remote archive may contain a modified `setup.sh`, replacement Python program, additional executable files, or other payloads. ### Attack Path 1. An attacker controls, acquires, or compromises the repository or release namespace referenced by the installation instructions. 2. The attacker publishes a malicious archive at the expected release URL. 3. A user follows `SHARE.md` and downloads the archive. 4. The user either skips the manual checksum comparison or fails to notice that the printed digest differs from the documented value. 5. The user extracts the archive and runs `bash setup.sh`. 6. The malicious installer executes with the privileges of the i ...[truncated 992 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Replace every placeholder repository URL with one canonical, verified maintainer repository. 2. Ensure `SHARE.md`, `SKILL.md`, `INSTALL.md`, and `package.json` identify the same owner and repository. 3. Enforce checksum verification before extraction or execution: ```bash printf '%s %s\n' \ '52e6793d41094b6495ce5a9ae165b9fa03947989d739290399a352e76d8b52c7' \ 'browser-toggle-v1.0.0.tar.gz' | sha256sum --check --strict - ``` 4. Stop installation immediately if integrity verification fails. 5. Publish cryptographically signed release artifacts and verify signatures against a maintainer key distributed through a separate trusted channel. 6. Pin downloads to immutable release assets or commit identifiers. 7. Advise users to inspect extracted files before executing the installer and not to run the installation as root. 8. Prefer distribution through the trusted Skill registry so the installed artifact is identical to the reviewed artifact. ]]>
