Back to skill

Security audit

Whoo CLI

Security checks for vulnerabilities and agentic risk

Overview

The skill is coherent for WHOOP data access, but it asks users to install an unpinned third-party global CLI that will handle OAuth credentials and sensitive health data.

Review the whoo CLI source and package provenance before installing, prefer a pinned version in an isolated environment rather than a global latest install, grant only the WHOOP scopes you need, and use whoo logout or revoke the WHOOP app if you stop using it.

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 (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:21
Finding
Unpinned Third-Party CLI Handles OAuth Credentials and Sensitive Health Data## Vulnerability Details **File Location**: `SKILL.md`, lines 21–27 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium **Vulnerable Code**: ```bash # Source: https://github.com/LuisGot/whoo bun add -g @luisgot/whoo # requires Bun 1.3+ # or: npm install -g @luisgot/whoo ``` ### Technical Analysis The Skill instructs users to install the latest available version of `@luisgot/whoo` globally. It does not specify an exact version, lock the dependency, or provide an integrity hash or signature. Consequently, the executable code installed by these commands can change after this Skill has been reviewed. The dependency is then trusted to process a WHOOP OAuth client secret, persistent access and refresh tokens, identity information, and sensitive health records. Its source code is not included in this project, so the audit could not verify its credential handling, token-storage permissions, network destinations, installation scripts, or data-retention behavior. WHOOP network access is necessary for the declared functionality, and the Skill explicitly states that raw health data must not be forwarded to external APIs, logs, or third-party services. No project-local evidence demonstrates exfiltration to a non-WHOOP endpoint. The risk arises because the unpinned and externally maintained CLI occupies a privileged position through which such data necessarily passes. ### Attack Path 1. An attacker compromises the package publisher account, package registry entry, source repository, or a transitive dependency. 2. The attacker publishes a malicious release under the existing `@luisgot/whoo` package name. 3. A user follows the documented global installation command, which resolves to that mutable release. 4. Malicious code executes during package installation or when the `whoo` command is invoked. 5. The compromised CLI captures interactively entered OAuth credentials, reads persisted tokens, intercepts ...[truncated 904 chars]
Remediation
## Remediation Suggestions 1. Pin the dependency to a specific, reviewed version, for example `@luisgot/whoo@<exact-version>`, rather than installing the mutable latest release. 2. Provide and verify a registry integrity hash, signed release artifact, or equivalent cryptographic provenance before installation. 3. Avoid global installation where practical. Use an isolated project environment or sandbox with a lockfile and minimum filesystem and network permissions. 4. Audit and document the CLI's source, lifecycle scripts, transitive dependencies, network destinations, OAuth scopes, token-storage location, file permissions, and refresh-token behavior. 5. Restrict OAuth scopes to only those required to retrieve the metrics requested by the user. 6. Ensure stored credentials use operating-system credential protection or equivalently restrictive permissions, and document reliable revocation and deletion procedures. 7. Re-audit every dependency update before changing the pinned version. 8. Preserve the existing prohibition against forwarding raw health data to unrelated APIs, logs, or third-party services.
Vulnerability Patterns
  • 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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep