T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:17
- Finding
- Unpinned Third-Party Dependencies Create a Supply-Chain Risk<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 17-20 **Vulnerability Type**: Unpinned and unverifiable third-party dependencies **Risk Level**: Medium ### Vulnerable Code ```markdown Install dependencies: ```bash pip install atproto python-dotenv ``` ``` ### Technical Analysis The installation instructions fetch the latest available versions of `atproto` and `python-dotenv` without exact version constraints, package hashes, a lockfile, or an explicitly trusted package index. Consequently, installations are not reproducible, and the code ultimately executed may differ from the version originally reviewed. These dependencies run in the same Python process as the Skill and therefore inherit access to the Bluesky handle, app password, exported session, direct messages, selected media, and all account-management operations. A compromised package release, dependency takeover, or substituted package source could access this sensitive data during installation or import. No evidence indicates that the currently named packages are malicious. The vulnerability is the absence of controls preventing a future or substituted release from being installed. ### Attack Path 1. An attacker compromises a dependency release or causes the installer to resolve a malicious package through an untrusted package source. 2. A user follows the documented `pip install atproto python-dotenv` command. 3. The unreviewed package executes installation-time or import-time code. 4. When the Skill runs, the package can read environment variables and the local session cache. 5. The attacker can exfiltrate credentials or use the authenticated client context to access and modify the Bluesky account. ### Impact Assessment Successful exploitation could expose the Bluesky app password, reusable session tokens, private direct messages, posts, uploaded media, and account metadata. Because the Skill supports posting, deletion, follows, blocks, profile changes, notification ...[truncated 220 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin every direct dependency to a reviewed exact version, for example: ```text atproto==<reviewed-version> python-dotenv==<reviewed-version> ``` 2. Generate and commit a lockfile containing resolved transitive dependencies and cryptographic hashes. 3. Install with hash verification, such as `pip install --require-hashes -r requirements.txt`. 4. Use an explicitly configured, trusted Python package index and disable unintended extra indexes. 5. Run dependency vulnerability and provenance checks in CI. 6. Review dependency updates before modifying pinned versions. 7. Prefer an isolated virtual environment with only the packages required by this Skill. ]]>
