Back to skill

Security audit

spotify-player

Security checks for vulnerabilities and agentic risk

Overview

This Spotify helper is mostly coherent, but it tells users to import Chrome cookies into an external CLI without explaining scope, storage, or revocation.

Review before installing. Use this skill only if you are comfortable letting the external spogo tool access Chrome cookie storage for Spotify authentication, and prefer a safer OAuth/device-login flow or the spotify_player fallback if available. If you use spogo, inspect its source and Homebrew tap, understand where credentials are stored, and know how to revoke Spotify sessions afterward.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:13
Finding
Unpinned Package Installation from a Third-Party Homebrew Tap## Vulnerability Details **File Location**: `SKILL.md`, lines 13-20 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium ### Vulnerable Code ```yaml { "id": "brew", "kind": "brew", "formula": "spogo", "tap": "steipete/tap", "bins": ["spogo"], "label": "Install spogo (brew)", }, ``` ### Technical Analysis The preferred `spogo` executable is obtained from the third-party Homebrew tap `steipete/tap`. The installation declaration does not pin a reviewed package version, repository commit, checksum, or cryptographic signature. Consequently, the code ultimately installed can change after this Skill has been reviewed. If the tap, its maintainer account, release pipeline, or distributed artifacts are compromised, a malicious formula or binary could be supplied without requiring any modification to `SKILL.md`. The reviewed Skill does not itself retrieve or execute a malicious payload, and there is no evidence that the named tap is currently malicious. The issue is the unbounded supply-chain trust placed in a mutable third-party source. ### Attack Path 1. An attacker compromises the third-party tap, its maintainer account, build pipeline, or release artifacts. 2. The attacker publishes a modified `spogo` formula or binary under the expected package name. 3. A user loads the Skill and follows or authorizes its preferred Homebrew installation path. 4. Homebrew retrieves the mutable package definition or artifact from the compromised source. 5. Malicious installation logic or application code executes with the privileges of the user running Homebrew. 6. The malicious dependency may access files, credentials, browser data, and network resources available to that user. ### Impact Assessment Successful exploitation could provide arbitrary code execution under the invoking user's account. The accessible ...[truncated 286 chars]
Remediation
## Remediation Suggestions - Prefer a package distributed through an official, independently reviewed repository. - If the third-party tap remains necessary, pin the dependency to a reviewed release or immutable commit. - Verify downloaded artifacts using an expected cryptographic checksum or trusted signature. - Document the package source, reviewed version, publisher, and integrity-verification procedure. - Review the Homebrew formula and upstream source before recommending installation. - Run the CLI with ordinary user privileges and avoid granting unnecessary filesystem or credential access. - Establish a controlled update process so new dependency versions are reviewed before adoption.

other

Warning
Location
SKILL.md:41
Finding
External CLI Is Directed to Access Sensitive Chrome Cookie Storage## Vulnerability Details **File Location**: `SKILL.md`, lines 41-43 **Vulnerability Type**: `other: Sensitive Browser Credential Access` **Risk Level**: Medium ### Vulnerable Code ```markdown spogo setup - Import cookies: `spogo auth import --browser chrome` ``` ### Technical Analysis The setup instructions direct the externally installed `spogo` program to import authentication material from Chrome. Browser cookies can contain sensitive session credentials. The Skill does not document which cookie domains or values are read, where imported credentials are stored, how they are protected, how long they remain valid, or how they can be revoked and removed. Because `spogo` is supplied externally and its implementation is absent from this project, the audit cannot verify that access is restricted exclusively to Spotify cookies or that imported credentials are securely stored. A compromised or unexpectedly broad implementation could inspect additional browser-cookie data. No direct credential exfiltration is present in `SKILL.md`, and the documented command may be a legitimate Spotify authentication mechanism. The security concern is that sensitive browser credential access is delegated to an unaudited external executable without explicit scope or safeguards. ### Attack Path 1. A user installs or already possesses the external `spogo` executable. 2. The user follows the Skill instruction and runs `spogo auth import --browser chrome`. 3. The executable requests or obtains access to Chrome's cookie database and any operating-system credential service needed to decrypt relevant values. 4. A compromised or overbroad executable reads Spotify session cookies and potentially other cookie records accessible through the same mechanism. 5. The executable stores, misuses, or transmits the acquired authentication material. 6. An attacker possessing valid session material may impersonate the affected session until the cookie expires ...[truncated 670 chars]
Remediation
## Remediation Suggestions - Prefer Spotify's official OAuth authorization-code or device-authorization flow instead of importing browser cookies. - Require explicit user consent immediately before accessing browser credential storage. - Document the exact cookie domains, fields, and browser profiles that the command accesses. - Ensure the importer filters strictly for the minimum Spotify authentication material required. - Store imported credentials in the operating system's protected credential store rather than plaintext configuration files. - Restrict credential-file permissions to the current user and avoid logging cookie values. - Pin and audit the external CLI version before allowing it to access browser data. - Document logout, revocation, credential deletion, and incident-response procedures. - Advise users to revoke Spotify sessions immediately if the imported credential store or CLI is suspected of compromise.
Vulnerability Patterns
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (1)

YARA rule 'info_stealer': Information stealer patterns (credential harvesting, browser data theft) [malware]

High
Category
YARA Match
Content
"spotify_player",
              "bins": ["spotify_player"],
              "label": "Install spotify_player (brew)",
            },
          ],
      },
  }
---

# spogo / spotify_player

Use `spogo` **(preferred)** for Spotify playback/search. Fall back to `spotify_player` if needed.

Requirements

- Spotify Premium account.
- Either `spogo` or `spotify_player` installed.

spogo setup

- Import cookies: `spogo auth import --browser chrome`

Common CLI commands

- Search: `spogo search track "query"`
- Playback: `spogo play|pause|next|prev`
- Devices: `spogo device list`, `spogo device set "<name|id>"`
- Status: `spogo status`

spotify_player commands (fallback)

- Search: `spotify_player search "query"`
- Playback: `spotify_player playback play|pause|next|previous`
- Connect device: `spotify_player connect`
- Like track: `spotify_player like`

Notes

- Config folder: `~/.config/spotify-player` (e.g., `app.toml`).
- For Spotify Connect integration, set a user `client_id` in config.
-
Confidence
91% confidence
Finding
The skill explicitly instructs the user to import browser cookies from Chrome using `spogo auth import --browser chrome`. Browser cookies are authentication material, and directing users to extract and reuse them creates a credential-harvesting or session-token-handling risk, especially if the tool accesses browser stores beyond the minimum needed or if imported cookies are stored insecurely. In the context of an agent skill, this is more dangerous because it normalizes pulling sensitive browser data into another tool without explaining scope, consent, storage, or safer OAuth-based alternatives.

Static analysis

No suspicious patterns detected.