T08 · Insecure Dependencies
Error
- Location
- SKILL.md:38
- Finding
- Unpinned Third-Party Package Installation## Vulnerability Details **File Location**: `SKILL.md:38` (installation command repeated at lines 54, 62, 70, 78, 97, and 115) **Vulnerability Type**: Unpinned dependency installation from a mutable package registry **Risk Level**: High **Vulnerable Code Snippet**: ```markdown - Install the package with `pip install gerritaction` before running commands. ``` The documented examples repeat the same installation pattern: ```bash pip install gerritaction ``` ### Technical Analysis The Skill instructs the agent to install `gerritaction` from the default Python package index without specifying a version, cryptographic hash, trusted repository, or reviewed artifact. Consequently, the installed code is determined by the package registry at invocation time rather than by the audited Skill content. Python package installation can execute package-controlled build and installation logic. A compromised maintainer account, malicious future release, registry compromise, or dependency-chain compromise could therefore result in arbitrary code execution. The package would execute in the same security context as the user or agent running the Skill and could access the Gerrit configuration supplied to subsequent commands. No evidence establishes that the current package is malicious. The vulnerability is the Skill's unsafe, mutable dependency acquisition procedure. ### Attack Path 1. An attacker compromises the `gerritaction` package, one of its transitive dependencies, or its package-registry publishing account. 2. The attacker publishes a malicious release that is selected by an unversioned `pip install gerritaction`. 3. An agent follows the Skill instructions and installs the package from the default package index. 4. Malicious installation or runtime code executes with the invoking user's privileges. 5. The payload reads accessible files or Gerrit credentials, alters commands, or sends unauthorized Gerrit API requests. 6. B ...[truncated 637 chars]
- Remediation
- ## Remediation Suggestions - Pin `gerritaction` to a specifically reviewed version rather than installing the latest available release. - Require cryptographic hashes, for example through a locked requirements file installed with `pip install --require-hashes`. - Pin and review all transitive dependencies. - Identify the authoritative source repository and verify release provenance or package signatures where supported. - Prefer an internally mirrored, access-controlled package repository containing approved artifacts. - Install and execute the package in an isolated virtual environment or restricted container under a non-privileged account. - Separate dependency installation from normal Skill invocation so package changes undergo security review before deployment. - Replace every unpinned installation example in `SKILL.md` with the same verified, reproducible installation procedure.
