T08 · Insecure Dependencies
Error
- Location
- SKILL.md:61
- Finding
- Unverified Third-Party Executable Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 61-65 **Vulnerability Type**: Unverified executable download and supply-chain exposure **Risk Level**: High **Vulnerable Code**: ```bash - **macOS recommended**: `hear` - local recognition, no network required ```bash curl -LO https://github.com/sveinbjornt/hear/releases/download/0.7/hear-0.7.zip unzip hear-0.7.zip && cp hear-0.7/hear ~/.local/bin/ ``` ``` ### Technical Analysis The installation instructions download an archive containing a native executable and copy that executable into the user's local executable directory without validating a cryptographic checksum or digital signature. HTTPS protects the download in transit, but it does not protect against compromise of the hosting account, repository, release artifact, or upstream build process. If the hosted archive is replaced, a user following the documented installation procedure will install the modified executable. The Skill later invokes this executable from `~/.local/bin/hear` when processing audio. Installing `hear` is relevant only to the optional macOS local-transcription mode. Downloading an unverified executable is not necessary to provide that functionality; artifact integrity verification can be added without reducing functionality. ### Attack Path 1. An attacker compromises the upstream repository, release account, or artifact-publishing process. 2. The attacker replaces `hear-0.7.zip` with an archive containing a modified `hear` executable. 3. A user follows the Skill's installation instructions. 4. The archive is downloaded and its executable is copied to `~/.local/bin/hear` without integrity verification. 5. The user invokes `scripts/transcribe.py`. 6. The Python script executes the compromised binary with the privileges of the current user. ### Impact Assessment A compromised executable could run arbitrary code with the installing user's privileges. This ...[truncated 443 chars]
- Remediation
- ## Remediation Suggestions 1. Publish and document a trusted SHA-256 or stronger digest for the exact release archive. 2. Verify the digest before extracting or installing the executable: ```bash curl --fail --location --output hear-0.7.zip \ https://github.com/sveinbjornt/hear/releases/download/0.7/hear-0.7.zip echo "EXPECTED_SHA256 hear-0.7.zip" | shasum -a 256 --check - ``` 3. Prefer a signed release and verify its signature against a documented maintainer key. 4. Stop installation immediately if download or verification fails. 5. Extract into a newly created temporary directory rather than the current directory. 6. Document the publisher, fixed version, expected checksum, and required permissions. 7. Keep local transcription explicitly optional and provide a supported package-manager installation path where available. 8. Pin Python and npm dependencies to reviewed versions and hashes rather than using unconstrained installation commands.
