T08 · Insecure Dependencies
Warning
- Location
- references/activation-map.md:274
- Finding
- Unpinned Third-Party Dependencies in the External Tool Inventory## Vulnerability Details **File Location**: `references/activation-map.md:274-280` **Vulnerability Type**: Unpinned third-party package installation instructions **Risk Level**: Medium ### Vulnerable Code ```markdown | Repo | URL | Purpose | Install | |------|-----|---------|---------| | GitMCP | gitmcp.io | Any repo → instant MCP server | Replace github.com with gitmcp.io | | LightRAG | github.com/HKUDS/LightRAG | Knowledge graph RAG | pip install lightrag-hku | | AutoFigure | github.com/ResearAI/AutoFigure | Publication-ready SVG figures | pip install autofigure | | MoLing-Minecraft | github.com/anthropics/moling | MCP Minecraft bridge | Go binary | | AI-Researcher | github.com/HKUDS/AI-Researcher | Full paper generation | pip install ai-researcher | | Claude Scientific Writer | internal | Citation-verified paper polish | Skill-based | | Agent Squad | github.com/awslabs/agent-squad | Multi-agent routing | npm install agent-squad | ``` ### Technical Analysis The documented `pip` and `npm` installation commands do not pin package versions, specify integrity hashes, or reference a reviewed lockfile. Consequently, the installed code is determined by the package registry at installation time rather than by the version reviewed during this audit. Python packages can execute build-system logic during installation, while npm packages can execute lifecycle scripts. If a referenced publisher account, repository, release process, or registry entry is compromised, following these instructions may install and execute attacker-controlled code. Unpinned versions also expose users to unexpected or malicious behavior introduced by later releases. ### Attack Path 1. An attacker compromises the publisher account or release process of one of the documented packages. 2. The attacker publishes a malicious release under the existing package name. 3. A user or automated agent follows an unpinned command such as `pip install lightrag- ...[truncated 770 chars]
- Remediation
- ## Remediation Suggestions 1. Pin every package to an explicitly reviewed version, such as `package==X.Y.Z` for Python and `package@X.Y.Z` for npm. 2. Provide committed lockfiles and require deterministic installation modes, such as `npm ci`. 3. Record and verify package integrity hashes. For Python, use a requirements file with hashes and install using `pip install --require-hashes`. 4. Document the verified publisher identity, official source repository, and expected package name to reduce dependency-confusion and typosquatting risks. 5. Review package source, build configuration, transitive dependencies, and lifecycle scripts before approving upgrades. 6. Perform installation in a sandboxed, least-privileged environment without production credentials. 7. Introduce dependency scanning and an explicit update-review process rather than automatically accepting the latest release.
