T08 · Insecure Dependencies
- Location
SKILL.md:22- Finding
Unpinned Third-Party Package Installation from Mutable Sources
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 22-26
Vulnerability Type: Unpinned dependency installation and mutable source-code retrieval
Risk Level: Mediumbash which sports-skills || pip install sports-skillsIf
pip installfails (package not found or Python version error), install from GitHub:bash pip install git+https://github.com/machina-sports/sports-skills.gitThe unpinned installation is also repeated in the troubleshooting instructions at
SKILL.md:166.Technical Analysis
The Skill instructs the Agent to install
sports-skillsfrom PyPI without specifying an audited version or integrity hash. If that installation fails, it retrieves and installs code directly from the external GitHub repository's mutable default revision rather than a reviewed commit SHA.Python package installation can execute dependency-controlled build hooks and installation logic. Consequently, the code executed during future installations may differ from the code available when this Skill was audited. An upstream account compromise, malicious package update, dependency compromise, or unauthorized repository modification could therefore introduce arbitrary code into the installation process.
No malicious payload was identified in the files included in this project, and the GitHub organization is consistent with the declared Skill author. This finding represents an exploitable supply-chain weakness rather than evidence that the current upstream package is malicious.
Attack Path
- An attacker compromises the upstream PyPI project, GitHub repository, maintainer account, release process, or a transitive dependency.
- The attacker publishes malicious package content or modifies the GitHub repository's default revision.
- On first use, the Agent follows the setup instructions and executes the unpinned
pip installcommand. pipdownloads the attacker-controlled package version or ...[truncated 875 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
sports-skillsto a reviewed, immutable version, such assports-skills==X.Y.Z. - Replace the GitHub default-branch installation with an immutable reviewed commit:
bash pip install "git+https://github.com/machina-sports/sports-skills.git@FULL_COMMIT_SHA" - Maintain a locked dependency file that pins all transitive dependencies.
- Require cryptographic hashes for packages, for example through a generated lock file and
pip install --require-hashes. - Build and verify dependencies in a controlled environment, then distribute an approved artifact rather than retrieving mutable code during normal Skill execution.
- Run installation and package execution in a restricted virtual environment or container with minimal filesystem permissions, no unnecessary credentials, and constrained outbound network access.
- Separate dependency installation from routine Skill use and require explicit operator approval before installing or upgrading external code.
- Pin
