T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:104
- Finding
- Unpinned Third-Party Dependency Installation## Vulnerability Details **File Location**: `SKILL.md`, line 104 **Vulnerability Type**: Unpinned package installation from a third-party package repository **Risk Level**: Medium ### Vulnerable Code ```bash pip3 install opentimestamps-client ``` ### Technical Analysis The documented installation command retrieves and installs whichever version of `opentimestamps-client` the package index currently resolves as the latest release. It does not specify a reviewed version, validate an artifact hash, enforce a lock file, or explicitly identify a trusted package index. Python packages can execute code during installation and subsequently when their commands or modules are invoked. Consequently, the effective code installed by this instruction can change after the Skill has been reviewed. Exploitation would require compromise of the legitimate package, its publisher account, the configured package repository, or the dependency-resolution path. The audit found no evidence that the package currently contains malicious code; the confirmed weakness is the absence of dependency pinning and integrity verification. ### Attack Path 1. An attacker compromises the package publisher, package repository, or another relevant dependency-distribution component. 2. The attacker publishes a malicious release that resolves under the unversioned package name. 3. A user follows the setup documentation and runs `pip3 install opentimestamps-client`. 4. `pip` downloads and installs the attacker-controlled release without checking a project-supplied expected version or hash. 5. Malicious code executes during installation or when the installed `ots` command is subsequently used. ### Impact Assessment Malicious package code could execute with the privileges of the user running `pip3`. Depending on those privileges and the local Python installation configuration, this could permit access to user-readable files, modification of user-owned data, theft o ...[truncated 396 chars]
- Remediation
- ## Remediation Suggestions - Pin `opentimestamps-client` to a specifically reviewed version. - Distribute a dependency lock file containing cryptographic hashes and install with `pip --require-hashes`. - Explicitly specify the approved package index and prevent fallback to untrusted indexes. - Review and pin transitive dependencies as well as the direct dependency. - Prefer an isolated virtual environment rather than installation into a shared or privileged Python environment. - Document a controlled upgrade process that reviews new versions before updating the pin. Example hardened installation pattern: ```bash python3 -m venv .venv .venv/bin/python -m pip install --require-hashes -r requirements.lock ``` The lock file should contain an exact version and approved hashes for every resolved package.
