T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:5
- Finding
- Unpinned Third-Party Executable Dependency## Vulnerability Details **File Location**: `SKILL.md`, line 5 **Vulnerability Type**: Unpinned third-party Go module installed from a mutable source **Risk Level**: Medium **Complete Code Snippet**: ```yaml metadata: {"clawdbot":{"emoji":"🔊","requires":{"bins":["sonos"]},"install":[{"id":"go","kind":"go","module":"github.com/steipete/sonoscli/cmd/sonos@latest","bins":["sonos"],"label":"Install sonoscli (go)"}]}} ``` ### Technical Analysis The installation configuration obtains and builds `github.com/steipete/sonoscli/cmd/sonos@latest`. The `@latest` selector is mutable and resolves when installation occurs, so the effective source code may differ from the version available when this Skill was reviewed. This creates a supply-chain risk because neither an audited version nor an immutable commit is specified. Although no malicious behavior was observed in the packaged files, a future upstream compromise or unsafe release could result in unreviewed code being downloaded, compiled, and installed. ### Attack Path 1. An attacker compromises the upstream repository, its release process, or a relevant dependency. 2. The attacker publishes a newer version containing malicious code. 3. A user installs the Skill dependency after that publication. 4. The `@latest` selector resolves to the compromised release. 5. Go downloads and builds the altered source. 6. The resulting `sonos` executable runs malicious code when invoked. ### Impact Assessment A compromised dependency could execute arbitrary code with the privileges of the user performing the installation or running `sonos`. Potential scope includes access to that user's files, environment variables, optional Spotify credentials, and reachable local-network resources. The precise impact depends on the privileges and environment of the affected process. The project itself contains no local executable source, and the externally retrieved module implementation was not includ ...[truncated 141 chars]
- Remediation
- ## Remediation Suggestions - Replace `@latest` with a specific, reviewed semantic version or immutable commit. - Verify the selected release's provenance and Go module checksum before approval. - Record the approved version and checksum in release documentation or a dependency lock policy. - Review upstream dependency changes before performing upgrades. - Use an internal mirror or controlled package proxy where stronger supply-chain governance is required. - Run installation and execution with least privilege and restrict access to unnecessary credentials and sensitive files.
