T08 · Insecure Dependencies
- Location
SKILL.md:79- Finding
Unpinned Dependency Installation into the System Python Environment
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 79-83
Vulnerability Type: Unpinned third-party dependency installation and unsafe modification of the system Python environment
Risk Level: MediumVulnerable Code
bash pip3 install rich --break-system-packages --quietTechnical Analysis
The installation instructions retrieve
richand its transitive dependencies from pip's configured package index without pinning an audited version or verifying package hashes. Consequently, the dependency graph can change after the Skill has been reviewed.The use of
--break-system-packagesadditionally bypasses protections for externally managed Python environments. Rather than isolating the Skill's dependencies, the command can install or replace packages in the user's system-managed Python environment. Installation hooks and imported package code execute with the privileges of the user running the command.No evidence establishes that the current
richpackage is malicious. The vulnerability is the mutable, unverified supply-chain trust combined with an unnecessarily invasive installation method.Attack Path
- An attacker compromises the configured Python package index, the
richdistribution, or one of its resolved dependencies. - The attacker publishes a malicious release or causes pip to resolve an attacker-controlled distribution.
- A user follows the Skill's installation instructions.
pip3downloads and installs the mutable dependency set without hash verification.- Malicious installation or runtime code executes with the privileges of the user invoking pip.
- Because
--break-system-packagespermits changes to the externally managed environment, affected packages may also influence other Python applications using that environment.
Impact Assessment
Successful exploitation can provide arbitrary code execution with the invoking user's privileges. This may permit ac ...[truncated 436 chars]
- An attacker compromises the configured Python package index, the
- Remediation
View remediation
Remediation Suggestions
- Remove
--break-system-packagesand install dependencies in a dedicated virtual environment. - Pin
richand every transitive dependency to reviewed versions. - Generate a lock file containing cryptographic hashes and install with hash enforcement, such as
pip install --require-hashes -r requirements.txt. - Configure an explicit trusted package index rather than relying on arbitrary user-level pip configuration.
- Build and test dependencies in a restricted environment before deployment.
- Document the dependency versions and establish a controlled process for reviewing and updating them.
- Where practical, package the Skill in an isolated container or another reproducible runtime environment.
- Remove
