T08 · Insecure Dependencies
- Location
SKILL.md:9- Finding
Unpinned External PyPI Package Is Installed and Executed
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:9-13
Vulnerability Type: Unpinned third-party executable dependency
Risk Level: MediumVulnerable Code
yaml install: - id: pip kind: pip package: vectorclaw-mcp label: "Install VectorClaw MCP (pip)"The documentation repeats the unpinned installation procedure at
SKILL.md:40-41:markdown 1. Install package: `pip install vectorclaw-mcp` 2. Configure SDK: `python3 -m anki_vector.configure`Technical Analysis
The Skill installs
vectorclaw-mcpfrom PyPI without specifying an exact version or verifying an integrity hash. It then configures OpenClaw to execute the installed package using:yaml command: python3 args: - "-m" - "vectorclaw_mcp.server"The audited project contains only
SKILL.mdandREADME.md; it does not contain the source code forvectorclaw_mcp.server. Consequently, the executable behavior cannot be reviewed from this artifact. Because package resolution is mutable, a compromised maintainer account, package repository, build pipeline, or later malicious release could cause users to install and execute code different from the code originally reviewed.This finding concerns supply-chain integrity. The audit found no direct evidence that the current external package is malicious.
Attack Path
- An attacker compromises the package publisher, distribution account, release pipeline, or another relevant supply-chain component.
- The attacker publishes a malicious release under the expected
vectorclaw-mcppackage name. - A user follows the Skill installation process, which requests the package without an exact version or hash.
- The package installer resolves and installs the attacker-controlled release.
- OpenClaw launches
python3 -m vectorclaw_mcp.server. - The malicious package executes with the permissions of the OpenClaw user and receives the config ...[truncated 844 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to a reviewed exact version, for example
vectorclaw-mcp==X.Y.Z, rather than resolving the latest available release. - Verify package artifacts with approved cryptographic hashes, such as through a locked requirements file used with
pip --require-hashes. - Include or link an immutable source revision corresponding exactly to the pinned package artifact.
- Audit the complete
vectorclaw_mcp.serverimplementation and all transitive dependencies before deployment. - Use signed releases and verify publisher identity, package provenance, and build attestations where supported.
- Run the MCP server as a dedicated, unprivileged account with narrowly scoped filesystem and network access.
- Restrict access to robot camera and motion controls to trusted workflows, and require confirmation for safety-sensitive physical actions where appropriate.
- Add automated dependency monitoring while requiring explicit review before adopting updated versions.
- Pin the dependency to a reviewed exact version, for example
