T08 · Insecure Dependencies
- Location
SKILL.md:83- Finding
Unpinned Dependency Installation Bypasses System Package Protections
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:83
Vulnerability Type: Unpinned third-party dependency installed into the system Python environment
Risk Level: MediumVulnerable Code:
bash pip3 install rich --break-system-packages --quietTechnical Analysis
The installation command retrieves the latest available version of
richwithout a version constraint or integrity hash. Consequently, the dependency resolved during installation can differ from the version reviewed or tested by the Skill author.The
--break-system-packagesoption bypasses Python's externally managed environment protection. This can modify the host's system-level Python environment, introduce dependency conflicts, or replace packages used by other applications. Python package installation can also execute package build or installation logic, making an upstream compromise relevant to local code execution.No evidence shows that
richitself is malicious. The vulnerability is the unsafe and non-reproducible dependency installation process.Attack Path
- An attacker compromises the dependency's publishing account, distribution artifact, or an upstream package involved in dependency resolution.
- A user follows the Skill's installation instructions.
pip3resolves and downloads the currently published package rather than a reviewed, hash-verified version.- Malicious package installation logic executes with the privileges of the user running the command.
- Because system package safeguards are bypassed, the installation can also alter the shared Python environment and affect unrelated Python applications.
Impact Assessment
Successful exploitation could execute arbitrary code with the privileges of the user running
pip3. The attacker could access that user's files and environment variables, including Skill credentials if they are present in the same execution environment. If the installation is run by a ...[truncated 232 chars]- Remediation
View remediation
Remediation Suggestions
- Install dependencies inside a dedicated virtual environment rather than the system Python environment.
- Remove
--break-system-packages. - Pin
richand all transitive dependencies to reviewed versions. - Use a lock file or requirements file containing cryptographic hashes, and install with
pip install --require-hashes. - Review and update pinned packages through a controlled dependency-update process.
- Avoid running package installation commands as
rootor another privileged account. - Where feasible, package the Skill in a reproducible, isolated environment with pre-audited dependencies.
