T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:92
- Finding
- Unpinned Third-Party Python Package Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 64-65, 92, and 182 **Vulnerability Type**: Unpinned and unverifiable third-party dependencies **Risk Level**: Medium ### Vulnerable Code ```markdown | **pasm-skills** (base) | Provides capabilities only, **without any agents** | `pip install pasm-skills` | | **pasm-agents** (skill source) | Game NPC / elder companion / learning companion + 7 verification agents | `pip install pasm-agents` | ``` ```bash pip install pasm-agents # Automatically installs pasm-skills ``` ```markdown | `bionic` | Full PASM core + emotion module (requires torch) | `pip install pasm-agents[torch]` | ``` ### Technical Analysis The documented installation commands do not pin package versions or verify package hashes or signatures. Consequently, installation resolves whichever package artifacts and transitive dependencies are published at execution time. Python package installation may execute package-controlled build backends, setup hooks, and generated commands. The code of `pasm-agents`, `pasm-skills`, optional dependencies such as `torch`, and their transitive dependencies is not included in the audited project. Their installation-time and runtime behavior therefore cannot be verified from `SKILL.md`. This creates a supply-chain exposure: compromise of an upstream publisher account, package release, build pipeline, or dependency could cause a future installation to retrieve attacker-controlled code. ### Attack Path 1. An attacker compromises an upstream package publisher, release pipeline, or transitive dependency. 2. The attacker publishes a malicious package version under a dependency name referenced by the documentation. 3. A user follows an unpinned `pip install` instruction. 4. Package resolution selects the malicious or compromised release. 5. Pip invokes attacker-controlled installation or build logic, or installs code that executes when the ...[truncated 719 chars]
- Remediation
- ## Remediation Suggestions 1. Pin every direct dependency to a specifically reviewed version. 2. Generate a lock file that records all transitive dependency versions. 3. Publish SHA-256 hashes for approved distributions and install with pip's `--require-hashes` option. 4. Prefer signed, reproducible releases and document how users can verify package provenance. 5. Review package build metadata and installation hooks before approving a release. 6. Install dependencies inside an isolated virtual environment using a non-privileged account. 7. Add automated dependency vulnerability, provenance, and integrity checks to the release process. 8. Repeat the audit whenever a pinned dependency or its verified artifact changes.
