T08 · Insecure Dependencies
- Location
- SKILL.md:38
- Finding
- Unpinned External Repository and Dependency Installation## Vulnerability Details **File Location**: `SKILL.md:38-44` **Additional Location**: `README.md:54-57`, `SKILL.md:334-335` **Vulnerability Type**: Supply-chain exposure through mutable, unpinned external code **Risk Level**: High **Vulnerable Code**: ```bash # Clone the PinkyBrain repository git clone https://github.com/PinkyBrain-ai/pinkybrain.git ~/pinkybrain cd ~/pinkybrain # Create virtual environment and install dependencies python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` ### Technical Analysis The installation procedure clones the current default branch of an external repository without pinning a reviewed commit, signed tag, or release artifact. It then installs dependencies from a `requirements.txt` file that is not included in the audited artifact. Consequently, the code and dependency graph executed by a user may differ from what existed when this Skill was reviewed. No lockfile, package hashes, trusted package index restrictions, or integrity verification instructions are supplied. The two audited documentation files cannot establish whether the external repository's setup process or transitive dependencies are safe. This creates a supply-chain execution channel. A compromised repository, malicious maintainer update, dependency takeover, dependency-confusion package, or compromised package-index account could introduce executable code. ### Attack Path 1. An attacker compromises the external repository, one of its maintainers, or a dependency referenced by its requirements. 2. The attacker adds malicious runtime or installation code to the default branch or dependency package. 3. A user follows the documented `git clone` and `pip install -r requirements.txt` procedure. 4. Malicious dependency installation hooks may execute during installation, or malicious application code executes when the node is initialized or started. 5. The payload operates with the priv ...[truncated 710 chars]
- Remediation
- ## Remediation Suggestions 1. Pin the repository to a reviewed, immutable commit hash or cryptographically signed release tag. 2. Publish and verify release artifacts with a documented signing key and trusted fingerprint. 3. Include a dependency lockfile containing exact versions and cryptographic hashes. 4. Install Python packages with hash enforcement, such as `pip install --require-hashes`. 5. Restrict installation to explicitly approved package indexes and disable unintended fallback indexes. 6. Audit all direct and transitive dependencies and automate vulnerability and provenance checks. 7. Include the executable source or a verifiable source manifest in the Skill package so reviewers can assess the actual implementation. 8. Run the node under a dedicated, unprivileged operating-system account with restricted filesystem and network access.
