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.
