T08 · Insecure Dependencies
- Location
references/setup.md:38- Finding
Unpinned Third-Party CLI Installation Creates a Supply-Chain Risk
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill does what it says, but it asks for YouTube account credentials and can delete channel sections without enough safety guidance.
Review before installing. Use a pinned and verified yutu version where possible, keep client_secret.json and youtube.token.json out of shared folders and source control, prefer protected secret storage over raw JSON in environment variables, and require explicit confirmation before any delete command.
references/setup.md:38Unpinned Third-Party CLI Installation Creates a Supply-Chain Risk
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
bins:
- yutu
config:
- client_secret.json
- youtube.token.json
primaryEnv: YUTU_CREDENTIAL
emoji: "\U0001F3AC\U0001F430"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
bins:
- yutu
config:
- client_secret.json
- youtube.token.json
primaryEnv: YUTU_CREDENTIAL
emoji: "\U0001F3AC\U0001F430"
The guide states that an OAuth token is saved to youtube.token.json after authentication, but it does not explain that this cached token is a sensitive bearer credential. Anyone who obtains the token file may be able to act as the user against permitted YouTube APIs until the token is revoked or expires and is refreshed.
Authenticate:
yutu auth --credential client_secret.json
A browser window will open for you to grant YouTube access. After granting permission, a token is saved to youtube.token.json.
The environment variable documentation allows OAuth secrets and cached tokens to be supplied as path, base64, or raw JSON, which increases the chance that credentials are exposed through shell history, process listings, CI logs, or copied configuration files. In a skill context where users may follow setup instructions quickly, this expands the attack surface for credential leakage.
| Variable | Description | Default |
|----------|-------------|---------|
| `YUTU_CREDENTIAL` | Path, base64, or JSON of OAuth client secret | `client_secret.json` |
| `YUTU_CACHE_TOKEN` | Path, base64, or JSON of cached OAuth token | `youtube.token.json` |
| `YUTU_ROOT` | Root directory for file resolution | Current working directory |
| `YUTU_LOG_LEVEL` | Log level: `DEBUG`, `INFO`, `WARN`, `ERROR` | `INFO` |
The skill explicitly supports deleting YouTube channel sections but does not provide any warning that the operation is destructive, irreversible, or should be confirmed before execution. In an agent-driven context, this omission increases the chance of accidental destructive actions by users or automated workflows that interpret the skill as routine and safe to run.
The setup guide instructs users to store OAuth client secrets and cached access tokens as local files but does not warn that these files are sensitive or recommend secure storage and file-permission controls. If those files are left in a shared directory, committed to source control, or exposed through logs/backups, an attacker could reuse them to access the user's YouTube account or API project.
No suspicious patterns detected.