T08 · Insecure Dependencies
- Location
SKILL.md:66- Finding
Unpinned Third-Party Package Download and Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 66-73
Vulnerability Type: Unpinned runtime dependency execution
Risk Level: HighVulnerable Code
json { "mcpServers": { "agntor": { "command": "npx", "args": ["-y", "@agntor/mcp"], "env": { "AGNTOR_API_KEY": "{AGNTOR_API_KEY}" } } } }The frontmatter also declares the same package without an exact version:
yaml metadata: {"openclaw": {"emoji": "🛡️", "homepage": "https://github.com/agntor/agntor", "requires": {"env": ["AGNTOR_API_KEY"]}, "primaryEnv": "AGNTOR_API_KEY", "install": [{"id": "npm", "kind": "node", "package": "@agntor/mcp", "bins": ["agntor-mcp-server"], "label": "Install Agntor MCP (npm)"}]}}Technical Analysis
The MCP configuration invokes
npx -y @agntor/mcpwithout an exact package version or an integrity constraint. The-yoption suppresses the interactive installation prompt, allowing npm to download and execute the package automatically.Consequently, the code reviewed during this audit is not necessarily the code that will execute later. A newly published, compromised, or otherwise unsafe package release could run with the privileges of the host agent process. The child process also receives
AGNTOR_API_KEYthrough its environment.No evidence establishes that the package is currently malicious. The vulnerability is the unsafe supply-chain execution model, which permits the effective executable payload to change after review.
Attack Path
- An attacker compromises the npm publisher account, registry delivery path, package repository, or a package dependency.
- The attacker publishes a malicious version that still satisfies the unversioned package reference.
- The Skill starts the MCP server using
npx -y @agntor/mcp. - npm retrieves the attacker-controlled release without requesting confirmation.
- The package executes locall ...[truncated 891 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace the unversioned package reference with an exact, audited version, such as
@agntor/mcp@X.Y.Z. - Install dependencies during a controlled build or deployment phase rather than downloading executable code at runtime.
- Commit and enforce a lockfile with integrity hashes.
- Verify package provenance, signatures, publisher identity, and registry integrity before installation.
- Remove
npx -yso unexpected installation or version changes cannot proceed silently. - Run the MCP server in a restricted container or sandbox with minimal filesystem and network access.
- Supply a narrowly scoped, short-lived API credential instead of a broadly privileged or long-lived key.
- Prevent unnecessary environment variables and host credentials from being inherited by the package process.
- Monitor dependency changes and repeat security review before upgrading the pinned version.
- Replace the unversioned package reference with an exact, audited version, such as
