T08 · Insecure Dependencies
- Location
SKILL.md:20- Finding
Unpinned Third-Party Package Is Downloaded and Executed with Spotify Credential Access
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 20–38
Vulnerability Type: Unpinned npm dependency and runtime package execution
Risk Level: MediumVulnerable Code
bash npm i -g spotify-aux npx spotify-aux login # PKCE → ~/.aux-mcp/bash openclaw mcp add aux \ --command npx \ --arg -y \ --arg spotify-aux \ --env SPOTIFY_CLIENT_ID="$SPOTIFY_CLIENT_ID" \ --env SPOTIFY_CLIENT_SECRET="$SPOTIFY_CLIENT_SECRET" openclaw mcp doctor aux --probebash npx spotify-aux openclaw # copies skills/aux-mcp/SKILL.md → ~/.openclaw/skills/aux-mcp/SKILL.mdTechnical Analysis
The installation and execution instructions refer to
spotify-auxwithout specifying an exact package version or integrity hash. In particular, registering the MCP server withnpx -y spotify-auxpermits npm to resolve and execute a package release at runtime without interactive confirmation. Consequently, the effective executable can change after this Skill has been reviewed.The MCP registration explicitly supplies
SPOTIFY_CLIENT_IDandSPOTIFY_CLIENT_SECRETto the package process. The login workflow also creates or accesses authentication data under~/.aux-mcp/. npm installation scripts and the resulting package execute with the privileges of the current operating-system user. This creates a supply-chain trust boundary that cannot be audited from this repository because the package implementation and a dependency lockfile are not included.This finding does not establish that the current
spotify-auxrelease is malicious. The vulnerability is the unsafe, mutable dependency execution model and its exposure to sensitive credentials.Attack Path
- An attacker compromises the npm package, its maintainer account, a transitive dependency, or another part of the package publishing pipeline.
- The attacker publishes a malicious release under the expected
spotify-auxpackage ...[truncated 1663 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
spotify-auxto a reviewed, exact version in every command, including installation and MCP registration. Do not use version ranges or implicit latest-version resolution. - Replace runtime
npx -ydownloads with execution from a previously verified local installation. Avoid automatically accepting package installation prompts. - Maintain a lockfile and verify package integrity using npm integrity metadata or cryptographic hashes from a trusted release process.
- Audit the selected package release, its lifecycle scripts, and its complete transitive dependency tree before deployment.
- Prefer a trusted immutable artifact or a source-controlled build tied to a specific commit and reproducible release.
- Run the MCP server under a dedicated, least-privileged operating-system account or sandbox with restricted filesystem and network access.
- Expose only credentials required for the requested operation. Avoid passing a client secret when a PKCE-only flow is sufficient.
- Store OAuth tokens with restrictive filesystem permissions and prevent the package from accessing unrelated user files.
- Add package provenance or signature verification to detect unauthorized releases.
- Rotate Spotify client credentials and revoke OAuth tokens immediately if an untrusted package version has been executed.
- Pin
