T08 · Insecure Dependencies
- Location
SKILL.md:79- Finding
Unpinned Remote Source and Dependency Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 79-93
Vulnerability Type: Unverified mutable source and dependency execution
Risk Level: MediumVulnerable Code
bash git clone https://github.com/FireRedTeam/FireRed-OpenStoryline.git cd FireRed-OpenStorylinebash /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.shTechnical 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.txtfile and executes the remotely controlleddownload.shscript.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
- An attacker compromises the upstream repository, its default branch, or an account authorized to modify it.
- The attacker changes
requirements.txt,download.sh, or another installation-controlled resource. - A user follows the skill and clones the current mutable default branch.
- The user executes
pip install -r requirements.txtorbash download.sh. - 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.txtresolves to a compromised package release.Impact Assessment
Successful exploitation could exe ...[truncated 546 chars]
- Remediation
View 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.txtanddownload.shbefore 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.
