T08 · Insecure Dependencies
- Location
SKILL.md:43- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 43
Vulnerability Type: Unpinned third-party dependency
Risk Level: MediumVulnerable Code
bash pip install tweepyTechnical Analysis
The setup instructions install the latest available release of
tweepywithout a version constraint, lock file, or integrity hash. Consequently, the dependency resolved during installation may differ from the version reviewed during the Skill audit.This creates supply-chain exposure: if the package, a transitive dependency, or its distribution channel is compromised, following the documented setup command could install attacker-controlled code. Python packages may execute code during installation, and imported package code runs when
scripts/tweet.pystarts.Although no evidence indicates that the current
tweepypackage is malicious, the installation instruction does not provide reproducible or integrity-verified dependency resolution.Attack Path
- An attacker compromises a future
tweepyrelease, one of its transitive dependencies, or the relevant package publishing account. - A user follows the setup instructions and runs
pip install tweepy. - The package resolver downloads the compromised release because no reviewed version or hash is required.
- Malicious installation or import-time code executes with the privileges of the user running
pip. - That code may inspect the documented Twitter environment variables or credential file and misuse the authenticated account.
Impact Assessment
Successful exploitation would run code with the privileges of the installing user. The exposed scope could include:
- Twitter API keys, access tokens, access secrets, and bearer tokens available in the process environment or
~/.config/twitter/credentials.json. - Unauthorized access to the Twitter capabilities granted to those credentials, including posting, replying, reading permitted account data, and sending or reading direct me ...[truncated 249 chars]
- An attacker compromises a future
- Remediation
View remediation
Remediation Suggestions
- Pin
tweepyto a specifically reviewed version rather than installing an unconstrained latest release. - Use a lock file and require cryptographic hashes for the complete dependency set, such as with a hash-locked requirements file and
pip install --require-hashes -r requirements.txt. - Install dependencies in a dedicated virtual environment with only the permissions needed to run the Skill.
- Review and update dependency pins through a controlled process that includes vulnerability and provenance checks.
- Avoid exposing credentials during dependency installation. Install and verify dependencies before exporting Twitter secrets or creating the credential file.
- Consider documenting a reproducible setup similar to:
bash python3 -m venv .venv . .venv/bin/activate python -m pip install --require-hashes -r requirements.txt- Pin
