T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:7
- Finding
- Mutable Unpinned Dependency Installed as an Executable<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 7 and 44 **Vulnerability Type**: Mutable third-party executable dependency **Risk Level**: Medium ### Vulnerable Code Line 7: ```yaml metadata: {"openclaw":{"emoji":"🎵","requires":{"anyBins":["spogo"]},"install":[{"id":"go","kind":"shell","command":"go install github.com/steipete/spogo/cmd/spogo@latest","bins":["spogo"],"label":"Install spogo (go)"}],"notes":"Cookies (sp_dc, sp_t) are stored locally in ~/.config/spogo/cookies/ and sent only to Spotify APIs. Browser automation fallback is optional and only used to start a playback session when no active device exists."}} ``` Line 44: ```bash go install github.com/steipete/spogo/cmd/spogo@latest ``` ### Technical Analysis The installation metadata and manual installation instructions both use the mutable Go version selector `@latest`. Consequently, the executable installed by the skill is not tied to the version that was reviewed during this audit. A future upstream release could introduce compromised, vulnerable, or simply incompatible code without requiring any modification to this repository. The source is a recognizable GitHub repository rather than an evident typosquat, but using a reputable source does not eliminate upstream-account compromise, malicious-release, or repository-takeover risks. Because the installed program receives access to Spotify authentication cookies, changes to the dependency have security significance. The repository contains no copy of the dependency source or checksum from which the installed executable can be independently verified. Claims that the program communicates only with Spotify therefore cannot be established from this project alone. ### Attack Path 1. An attacker compromises the upstream repository, its maintainer account, or its release process. 2. The attacker publishes a malicious version that becomes the version resolved by `@latest`. 3. A user or agent follows the skill installation ...[truncated 1050 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Replace `@latest` with a specifically reviewed semantic version: ```bash go install github.com/steipete/spogo/cmd/spogo@v0.2.0 ``` 2. For stronger immutability, document the reviewed upstream commit and ensure the selected release tag resolves to that commit. 3. Keep the metadata installer and manual installation instructions synchronized so neither path silently uses a mutable version. 4. Record the expected source revision and Go module checksums in the project documentation. 5. Establish an update process in which dependency upgrades are reviewed and tested before changing the pinned version. 6. If distributing prebuilt binaries, publish checksums or signed provenance and require users to verify them before execution. ]]>
