T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:13
- Finding
- Unpinned Third-Party Package Installation## Vulnerability Details **File Location**: `SKILL.md:13-17` and `SKILL.md:52-56` **Vulnerability Type**: Unpinned third-party dependency **Risk Level**: Medium The skill declares and recommends installing `gcalcli` from PyPI without pinning a reviewed version or verifying package integrity. **Complete vulnerable code snippets:** ```yaml "id": "pip", "kind": "pip", "package": "gcalcli", "bins": ["gcalcli"], "label": "Install gcalcli (pip)", ``` ```markdown ## Install ```bash pip install gcalcli ``` ``` ### Technical Analysis The command `pip install gcalcli` resolves the package version and its transitive dependencies at installation time. No exact version, dependency lock file, package hash, or trusted repository configuration is supplied. Consequently, the code installed by following the skill can differ from the code originally reviewed. If the upstream package, a transitive dependency, maintainer account, or package-distribution channel is compromised, pip may install attacker-controlled code. Such code can execute during installation or when the documented `gcalcli` command is invoked. ### Attack Path 1. An attacker compromises a future `gcalcli` release, one of its transitive dependencies, or the relevant package-publishing account or distribution channel. 2. A user or agent follows the skill instruction and runs `pip install gcalcli`. 3. Pip resolves and downloads the compromised release because the skill does not constrain the version or verify hashes. 4. Attacker-controlled code executes during package installation or subsequent invocation of `gcalcli`. 5. The malicious code operates with the privileges of the installing or invoking user and can attempt to access data and credentials available to that process. ### Impact Assessment Successful exploitation could provide arbitrary code execution with the privileges of the user ...[truncated 396 chars]
- Remediation
- ## Remediation Suggestions - Pin `gcalcli` to a specifically reviewed version rather than allowing unrestricted latest-version resolution. - Maintain a lock file covering all transitive dependencies. - Require package hashes, such as through a hash-locked requirements file and `pip install --require-hashes`. - Install the dependency from the official, explicitly configured package index. - Review package provenance, release signatures or attestations, and dependency changes before updating the pinned version. - Install the package in an isolated virtual environment under a non-privileged account. - Limit the calendar credentials and permissions available to the process to the minimum required for the requested operation.
