T08 · Insecure Dependencies
Error
- Location
- SKILL.md:58
- Finding
- Unverified Third-Party Repository Discovery and Execution## Vulnerability Details **File Location**: `SKILL.md`, lines 58–63 **Vulnerability Type**: Unverified supply-chain bootstrap **Risk Level**: High ### Vulnerable Code Snippet ```markdown ## Setup Requirements HerCycle requires a running WhoopClaw instance — an open-source FastAPI backend that handles Whoop OAuth, cycle tracking, and biometric storage. Search GitHub for "WhoopClaw" to find an implementation, or build your own against the Whoop Developer API. **Prerequisites:** 1. **Whoop API credentials** — register at [developer-dashboard.whoop.com](https://developer-dashboard.whoop.com) to get your `WHOOP_CLIENT_ID` and `WHOOP_CLIENT_SECRET` 2. **WhoopClaw running locally** — clone, configure `.env`, and start the server (`uvicorn main:app`) ``` ### Technical Analysis The setup instructions direct users to search GitHub for a project named “WhoopClaw,” clone an unspecified implementation, configure it with OAuth credentials, and execute it locally. The documentation does not identify a canonical repository, verified publisher, immutable commit, release signature, checksum, or dependency-lock verification process. Search-based dependency discovery creates a supply-chain trust gap. An attacker can publish a repository with the expected name and plausible documentation, improve its search visibility, and embed malicious startup code or dependencies. Running `uvicorn main:app` imports and executes the selected application's Python modules, allowing module-level code and application initialization hooks to run before the user interacts with the service. This issue is classified as insecure dependency handling rather than confirmed embedded malicious code because the audited project contains no executable scripts or malicious payload. The risk arises from its explicit instruction to obtain and execute an unverified external component. ### Attack Path 1. An attacker publishes a convincing repository using the “WhoopClaw” nam ...[truncated 1749 chars]
- Remediation
- ## Remediation Suggestions 1. Replace search-based discovery with the exact HTTPS URL of an official repository controlled by a verified publisher. 2. Pin installation instructions to a reviewed immutable commit hash or cryptographically signed release rather than a mutable branch or tag. 3. Publish SHA-256 checksums and signature-verification instructions for release artifacts. 4. Require review of startup files, dependency manifests, installation hooks, and container definitions before execution. 5. Use pinned dependency versions with hashes, such as a hash-locked requirements file, and run dependency and source-code security scans. 6. Execute the backend under a dedicated, unprivileged service account or hardened container with minimal filesystem and network access. 7. Store OAuth secrets in an appropriate secret manager or otherwise restrict `.env` permissions; do not place production credentials into an implementation until its provenance has been verified. 8. Grant narrowly scoped OAuth permissions and document credential rotation and revocation procedures in case an untrusted implementation is executed. 9. Clearly state that forks, mirrors, and similarly named search results are untrusted unless their identity and integrity are independently verified.
