T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:243
- Finding
- Unpinned Third-Party Packages and Mutable Password-Manager Extension## Vulnerability Details **File Location**: `SKILL.md`, lines 243 and 259–262 **Vulnerability Type**: Unverified and unpinned third-party dependencies **Risk Level**: Medium ### Vulnerable Code ```bash pip install pass-import # or: pacman -S pass-import ``` ```bash # Install git clone https://github.com/roddhjav/pass-update ~/.password-store/.extensions/update.bash # Update a password interactively pass update email/gmail ``` ### Technical Analysis The skill instructs users to install `pass-import` from PyPI without pinning an exact version and to clone the mutable default branch of a GitHub repository without selecting an immutable commit, verifying a checksum, or validating a cryptographic signature. These dependencies operate near a sensitive password store. In particular, the cloned component is intended to become a `pass` extension and is subsequently invoked using `pass update`. If an upstream release, repository, maintainer account, or distribution channel is compromised, code different from the code originally reviewed could be installed and executed. The documented clone destination is also potentially unreliable: `git clone` ordinarily creates a directory at the specified destination, while a `pass` extension conventionally requires an executable extension script. This ambiguity may encourage users to perform additional unsafe installation steps to make the extension executable. ### Attack Path 1. An attacker compromises the PyPI package, GitHub repository, maintainer account, or another part of the upstream release process. 2. The attacker publishes a malicious package version or modifies the repository's mutable default branch. 3. A user follows the skill instructions and runs the unpinned `pip install` or `git clone` command. 4. The malicious dependency is installed without integrity or provenance verification. 5. The user invokes `pass import` or `pass update`. 6. Attacker-controlled code ...[truncated 1043 chars]
- Remediation
- ## Remediation Suggestions 1. Prefer packages supplied and verified by the operating-system distribution where practical. 2. Pin Python dependencies to an explicitly reviewed version, for example with an exact `==` constraint. 3. Use a lock file containing cryptographic hashes and install with hash verification, such as `pip install --require-hashes`. 4. Pin the Git dependency to a reviewed immutable commit rather than relying on the repository's mutable default branch. 5. Verify signed tags, release signatures, or independently published checksums before installation. 6. Review extension source code before making it executable or enabling `PASSWORD_STORE_ENABLE_EXTENSIONS`. 7. Replace the ambiguous clone command with documented installation steps that copy only the reviewed extension script to the correct extension path and apply the minimum required permissions. 8. Execute import and extension tooling with ordinary user privileges, never with `sudo`, and restrict unnecessary network access where feasible. 9. Back up the encrypted password store before running third-party migration or update extensions.
