T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:98- Finding
Unverified Remote Script Retrieval and Execution
- Content
View full analysis
~/bin/unformal-listen chmod +x ~/bin/unformal-listen export UNFORMAL_API_KEY=unf_xxx # add to ~/.zshrc for persistence ``` The downloaded file is subsequently intended to be run as follows: ```bash unformal-listen # lists your Pulses unformal-listen # starts listening ``` ### Technical Analysis The installation instructions retrieve a mutable shell script from an external URL, mark it executable, and direct the user to run it. There is no version pin, cryptographic checksum, signature verification, or comparison against the listener already included in the Skill package. Consequently, the effective code executed by the user is not necessarily the code reviewed in `scripts/unformal-listen.sh`. The external resource can change after publication or audit. Although HTTPS provides transport protection, it does not protect against compromise of the hosting account, deployment pipeline, origin server, or authorized content being replaced. Fetching executable code is not required at this privilege level because the project already contains a local copy at `scripts/unformal-listen.sh`. ### Attack Path 1. An attacker compromises the external script resource, website deployment process, or an account authorized to update the resource. 2. The attacker replaces `https://unformal.ai/unformal-listen.sh` with a malicious shell payload. 3. A user follows the documented installation procedure. 4. `curl` writes the attacker-controlled content to `~/bin/unformal-listen`. 5. The file is marked executable without integrity verification. 6. The user invokes `unformal-listen` while an Unformal API key is available in the environment. 7. The payload executes with the user's ...[truncated 642 chars]- Remediation
View remediation
