T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:79
- Finding
- Unpinned Remote Source and Dependency Execution## Vulnerability Details **File Location**: `SKILL.md`, lines 79-93 **Vulnerability Type**: Unverified mutable source and dependency execution **Risk Level**: Medium ### Vulnerable Code ```bash git clone https://github.com/FireRedTeam/FireRed-OpenStoryline.git cd FireRed-OpenStoryline ``` ```bash /path/to/python -m venv .venv .venv/bin/python -m pip install --upgrade pip .venv/bin/python -m pip install -r requirements.txt bash download.sh ``` ### Technical Analysis The workflow clones the mutable default branch of an external Git repository without pinning a reviewed release tag or commit hash. It subsequently installs packages specified by the remotely controlled `requirements.txt` file and executes the remotely controlled `download.sh` script. The skill does not require inspection of these files, cryptographic verification of the checked-out revision, dependency hash validation, or checksum verification for downloaded resources. Consequently, the effective installation payload can change after this skill has been audited. This creates a supply-chain trust boundary in which compromise of the upstream repository, its maintainers, a referenced package, or a downloaded resource could introduce arbitrary commands into the installation process. ### Attack Path 1. An attacker compromises the upstream repository, its default branch, or an account authorized to modify it. 2. The attacker changes `requirements.txt`, `download.sh`, or another installation-controlled resource. 3. A user follows the skill and clones the current mutable default branch. 4. The user executes `pip install -r requirements.txt` or `bash download.sh`. 5. The modified installation payload runs with the permissions of the invoking user. A related path is possible if an unpinned or otherwise unsafe package reference in `requirements.txt` resolves to a compromised package release. ### Impact Assessment Successful exploitation could exe ...[truncated 546 chars]
- Remediation
- ## Remediation Suggestions - Pin the upstream repository to a reviewed release tag and immutable commit hash. - Verify the checked-out commit before running any repository-controlled command. - Inspect `requirements.txt` and `download.sh` before installation or execution. - Use a locked dependency file containing exact versions and cryptographic hashes. - Install dependencies with hash enforcement, such as `pip install --require-hashes`. - Pin all external resource URLs to immutable versions and publish trusted SHA-256 checksums. - Verify resource checksums before extraction or use. - Run installation in an isolated, non-privileged environment with minimal filesystem and credential access. - Avoid automatically executing remotely retrieved shell scripts unless their content and integrity have been verified.
