T08 · Insecure Dependencies
- Location
SKILL.md:17- Finding
Third-Party CLI Installed from a Mutable Git Tag
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is not overtly malicious, but it needs Review because it installs a global third-party CLI that uses persistent X API credentials and includes an under-disclosed delete command.
Install only if you trust the tweet-cli upstream and are comfortable giving it X account write access. Prefer auditing the resolved source, pinning to an immutable commit, using narrowly scoped and revocable X credentials, and confirming manually before any post, reply, quote, or delete action.
SKILL.md:17Third-Party CLI Installed from a Mutable Git Tag
SKILL.md:23Credential File Creation Follows Pre-Existing Symbolic Links
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
npm install -g github:0xmythril/tweet-cli#v1.0.0
mkdir -p ~/.config/tweet-cli
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
mkdir -p ~/.config/tweet-cli
touch ~/.config/tweet-cli/.env
chmod 600 ~/.config/tweet-cli/.env
cat > ~/.config/tweet-cli/.env << 'EOF'
X_API_KEY=your_consumer_key
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
mkdir -p ~/.config/tweet-cli
touch ~/.config/tweet-cli/.env
chmod 600 ~/.config/tweet-cli/.env
cat > ~/.config/tweet-cli/.env << 'EOF'
X_API_KEY=your_consumer_key
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
mkdir -p ~/.config/tweet-cli
touch ~/.config/tweet-cli/.env
chmod 600 ~/.config/tweet-cli/.env
cat > ~/.config/tweet-cli/.env << 'EOF'
X_API_KEY=your_consumer_key
The skill manifest and description say the tool is for posting tweets, replies, and quotes, but the documented command set also includes tweet deletion. This capability mismatch can mislead an agent or user about the tool’s real authority, increasing the chance of unintended destructive actions such as deleting content when the skill is assumed to be non-destructive.
The skill explicitly instructs persistent storage of long-lived API credentials in ~/.config/tweet-cli/.env, enabling continued authenticated access across sessions. Even with chmod 600, plaintext secret persistence increases the blast radius of local compromise, accidental backup leakage, or other processes running as the same user accessing the file.
mkdir -p ~/.config/tweet-cli
touch ~/.config/tweet-cli/.env
chmod 600 ~/.config/tweet-cli/.env
cat > ~/.config/tweet-cli/.env << 'EOF'
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
mkdir -p ~/.config/tweet-cli
touch ~/.config/tweet-cli/.env
chmod 600 ~/.config/tweet-cli/.env
cat > ~/.config/tweet-cli/.env << 'EOF'
X_API_KEY=your_consumer_key
X_API_SECRET=your_secret_key
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
## Security
- **Credentials**: Stored in `~/.config/tweet-cli/.env` (read by `dotenv` at runtime). Set `chmod 600` to restrict access.
- **No postinstall scripts**: The package has zero install scripts — verify via `npm pack --dry-run` or inspect `package.json`.
- **No telemetry or network calls** except to the official X API (`api.x.com`) when you run a command.
- **Pinned install**: The install command pins to a specific release tag. Audit the source at https://github.com/0xmythril/tweet-cli before installing.
No suspicious patterns detected.