Back to skill

Security audit

twitterapi-io-cli

Security checks for vulnerabilities and agentic risk

Overview

The skill is read-focused and coherent, but it tells users to install and run an unpinned third-party GitHub CLI that can change after review and will handle an API key.

Review before installing. Prefer a pinned, audited release or commit of the twitterapi-io CLI, use a narrowly scoped and revocable API key, avoid passing secrets directly on the command line where shell history may retain them, and treat the local config file as sensitive.

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

Error
Location
SKILL.md:19
Finding
Unpinned Third-Party VCS Dependency Enables Supply-Chain Code Execution## Vulnerability Details **File Location**: `SKILL.md`, lines 19–23 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: High ```bash Preferred install: ```bash pipx install git+https://github.com/ropl-btc/twitterapi-io-cli.git ``` ``` ### Technical Analysis The installation command retrieves and installs a Python package directly from the mutable default branch of a third-party GitHub repository. It does not specify an immutable commit, a signed release, a fixed package version, or an expected artifact hash. As a result, the code installed by this command can change after the Skill has been reviewed. Python package installation may execute attacker-controlled build hooks, while later CLI invocation executes the installed package directly. This risk is reinforced by `scripts/twitterapi_io.py`, which imports and delegates all runtime behavior to `twitterapi_io.cli.main` without independently enforcing the documented read-only restrictions. The issue does not prove that the current upstream repository is malicious. It creates a supply-chain trust boundary through which a compromised maintainer account, repository, dependency, or future upstream revision could introduce arbitrary code. ### Attack Path 1. An attacker compromises the upstream GitHub repository, its maintainer account, or another mechanism capable of modifying its default branch. 2. The attacker adds malicious package installation hooks or runtime code to the upstream project. 3. A user follows the documented command: `pipx install git+https://github.com/ropl-btc/twitterapi-io-cli.git`. 4. The package manager retrieves the attacker's mutable revision without commit or artifact verification. 5. Malicious code executes during package installation or when the compatibility wrapper or installed CLI is invoked. 6. The code runs with the installing user's privileges and may access data available to that account, including the Twitter API k ...[truncated 793 chars]
Remediation
## Remediation Suggestions 1. Replace the mutable VCS installation instruction with a fixed, reviewed package release. 2. If Git installation is necessary, pin the dependency to the full hash of an audited commit, for example: ```bash pipx install 'git+https://github.com/ropl-btc/twitterapi-io-cli.git@FULL_AUDITED_COMMIT_HASH' ``` 3. Prefer reproducible release artifacts with cryptographic hashes or verifiable signatures. 4. Record and audit all transitive dependencies through a lockfile with exact versions and hashes. 5. Review the upstream package's build configuration and installation hooks before approving it. 6. Run the CLI in an isolated, least-privilege environment with access only to the required API credential and output directory. 7. Use a narrowly scoped, revocable API key and avoid exposing unrelated credentials to the CLI process. 8. Add automated dependency monitoring and require security review before updating the pinned revision. 9. Consider including audited implementation code in the project so that the effective runtime behavior is available during Skill review.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (1)

Missing User Warnings

Low
Confidence
88% confidence
Finding
This markdown file instructs users to provide an API key via command line or environment variable, and later notes config storage under the user's home directory. While the skill is read-only, the description does not include any user-facing warning about keeping the key secret, avoiding shell history exposure, or the fact that credentials may be stored locally.

Static analysis

No suspicious patterns detected.