T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:16
- Finding
- Unpinned Security-Sensitive Third-Party Dependency<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:16-17` and `README.md:9-10` **Vulnerability Type**: Unpinned third-party package installation **Risk Level**: Medium ### Vulnerable Code `SKILL.md:16-17`: ```markdown ## Requirements - `pybirdbuddy` Python package: `pip install pybirdbuddy` ``` `README.md:9-10`: ```markdown ## Requirements - `pip install pybirdbuddy` ``` The installed dependency is imported and entrusted with account credentials at `run.py:9` and `run.py:25`: ```python from birdbuddy.client import BirdBuddy ``` ```python bb = BirdBuddy(BB_EMAIL, BB_PASSWORD) ``` ### Technical Analysis The installation instructions retrieve the latest available `pybirdbuddy` release without specifying an audited version, cryptographic hashes, a lock file, or a trusted package source. Package installation can execute package-controlled build or installation logic, and the resulting library executes in the same Python process as the Skill. This dependency is particularly security-sensitive because `run.py` passes the user's Bird Buddy email address and password directly to its `BirdBuddy` class. A compromised upstream release, package-index account, distribution artifact, or package source could therefore access those credentials and execute arbitrary code under the operating-system account running the Skill. There is no evidence in the audited project that the current dependency is malicious. The issue is the absence of controls preventing an unreviewed future package version from being installed and executed. ### Attack Path 1. An attacker compromises the upstream package maintainer, publishing account, package-index distribution, or another part of the package supply chain. 2. The attacker publishes a modified `pybirdbuddy` release containing malicious installation or runtime code. 3. A user follows the documented `pip install pybirdbuddy` command, which resolves to the compromised latest release. 4. The malicious dependency executes d ...[truncated 904 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin `pybirdbuddy` to a specific version that has been reviewed and tested: ```text pybirdbuddy==<audited-version> ``` 2. Maintain dependencies in a lock file with cryptographic hashes, such as a hash-locked `requirements.txt`. 3. Install with hash verification: ```bash python3 -m pip install --require-hashes -r requirements.txt ``` 4. Document the expected package index and upstream repository rather than relying on the user's default package-index configuration. 5. Review dependency updates before changing the pinned version, including package ownership, release provenance, build configuration, and transitive dependencies. 6. Run the Skill under a dedicated, minimally privileged operating-system account or sandbox with access only to the required credentials and network destinations. 7. Prefer short-lived authentication tokens over reusable account passwords if the upstream service and library add support for them. ]]>
