T08 · Insecure Dependencies
- Location
references/activation-map.md:274- Finding
Unpinned Third-Party Dependencies in the External Tool Inventory
- Content
View full analysis
Vulnerability Details
File Location:
references/activation-map.md:274-280
Vulnerability Type: Unpinned third-party package installation instructions
Risk Level: MediumVulnerable 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
pipandnpminstallation 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
- An attacker compromises the publisher account or release process of one of the documented packages.
- The attacker publishes a malicious release under the existing package name.
- A user or automated agent follows an unpinned command such as `pip install lightrag- ...[truncated 770 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every package to an explicitly reviewed version, such as
package==X.Y.Zfor Python andpackage@X.Y.Zfor npm. - Provide committed lockfiles and require deterministic installation modes, such as
npm ci. - Record and verify package integrity hashes. For Python, use a requirements file with hashes and install using
pip install --require-hashes. - Document the verified publisher identity, official source repository, and expected package name to reduce dependency-confusion and typosquatting risks.
- Review package source, build configuration, transitive dependencies, and lifecycle scripts before approving upgrades.
- Perform installation in a sandboxed, least-privileged environment without production credentials.
- Introduce dependency scanning and an explicit update-review process rather than automatically accepting the latest release.
- Pin every package to an explicitly reviewed version, such as
