T08 · Insecure Dependencies
- Location
SKILL.md:7- Finding
Unpinned Third-Party CLI Handles Persistent Tidal Credentials
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:7-13, 21-27
Vulnerability Type: Unpinned third-party dependency with access to persistent account credentials
Risk Level: MediumVulnerable Code
yaml metadata: openclaw: requires: bins: ["tidal-cli"] install: - id: node kind: node package: "@lucaperret/tidal-cli" bins: ["tidal-cli"] label: "Install tidal-cli (npm)"markdown If `tidal-cli` is not authenticated, run auth first. This opens the user's browser for Tidal login (one-time): ```bash tidal-cli authCredentials persist at
~/.tidal-cli/session.jsonand auto-refresh.text ### Technical Analysis The installation configuration references `@lucaperret/tidal-cli` without an exact version or integrity hash. Dependency resolution can therefore select a future package release whose contents were not part of this audit. The dependency's implementation, lifecycle scripts, and runtime behavior are absent from the reviewed project and cannot be verified from `SKILL.md`. The installed CLI is then entrusted with browser-based Tidal authentication and a persistent, automatically refreshed session. It can also perform account-authorized operations, including reading profile information, obtaining playback URLs, and modifying playlists and library favorites. Consequently, compromise of the npm package, its publisher account, or its distribution path could place authenticated account access under attacker-controlled code. This finding establishes an unsafe supply-chain configuration, not that the currently published package is malicious. ### Attack Path 1. An attacker compromises the npm package publisher, the package distribution process, or a future release of `@lucaperret/tidal-cli`. 2. Because no exact version or integrity value is specified, installation resolves and executes the compromised release. 3. The user or Agent runs `tidal-cli auth`, establishing a renewable Tidal ...[truncated 906 chars]- Remediation
View remediation
Remediation Suggestions
- Pin
@lucaperret/tidal-clito a specific, reviewed version rather than allowing unconstrained resolution. - Use lockfile and registry integrity verification, and preserve the expected package digest in the trusted installation process.
- Audit the package source, transitive dependencies, and npm lifecycle scripts before deployment.
- Disable dependency lifecycle scripts where operationally possible, or explicitly allow only reviewed installation behavior.
- Use a trusted registry and monitor package ownership, release history, and integrity changes.
- Ensure
~/.tidal-cli/session.jsonis created with permissions restricting access to the owning user. - Prefer scoped, revocable credentials and provide clear session-revocation guidance.
- Require explicit user confirmation before destructive operations such as playlist deletion or broad library modification.
- Vendor or otherwise make the reviewed CLI implementation available with the Skill so its effective runtime behavior can be audited.
- Pin
