T08 · Insecure Dependencies
Error
- Location
- SKILL.md:17
- Finding
- Unpinned Third-Party Package and Repository Installation<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 17-18 **Vulnerability Type**: Unverified and mutable third-party dependency installation **Risk Level**: High ### Vulnerable Code ```bash pip install getpercept # or: git clone https://github.com/GetPercept/percept cd percept && pip install -e . ``` ### Technical Analysis The installation instructions execute third-party code without pinning an audited package version or repository commit. They also provide no package hash verification, signature validation, lockfile, or release provenance check. Both installation methods resolve mutable upstream content: - `pip install getpercept` installs whichever package release the package index currently selects. - `git clone https://github.com/GetPercept/percept` retrieves the repository's current default branch. - `pip install -e .` can execute packaging and build logic obtained from that mutable repository. Python package installation may run attacker-controlled build backends or installation logic. Consequently, a compromise of the package index account, source repository, maintainer credentials, build pipeline, or dependency resolution process could turn these documented commands into arbitrary code execution. No malicious upstream package behavior is established by the reviewed files; the vulnerability is the lack of dependency pinning and integrity controls. ### Attack Path 1. An attacker compromises the `getpercept` package publisher, source repository, maintainer account, or upstream release process. 2. The attacker publishes a malicious package release or modifies the repository's default branch. 3. A user follows the Quick Start instructions and runs one of the unpinned installation methods. 4. `pip` retrieves and processes the attacker-controlled package or build configuration. 5. Malicious installation logic executes with the privileges of the user performing the installation. 6. The payload may access meeting transcripts, the ...[truncated 841 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin `getpercept` to a specific, reviewed version rather than installing the latest available release. 2. Use a lockfile or requirements file containing cryptographic hashes, and install with hash enforcement such as `pip install --require-hashes`. 3. If installing from Git, pin an audited full commit hash instead of cloning and installing the mutable default branch. 4. Verify release signatures, attestations, or trusted publisher provenance where supported. 5. Review the package's build configuration and transitive dependencies before approving upgrades. 6. Install the dependency in an isolated virtual environment or container with minimal filesystem and credential access. 7. Define a controlled update process that reviews and tests each new dependency version before deployment. ]]>
