T08 · Insecure Dependencies
- Location
SKILL.md:20- Finding
Unpinned Remote Dependencies and Mutable Installation Sources
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:20-25,README.md:6-9
Vulnerability Type:T08: Insecure Dependencies
Risk Level: HighVulnerable Code
SKILL.md:20-25:text openclaw mcp add erabi -- npx -y erabi-mcptext (Or add `{"mcpServers": {"erabi": {"command": "npx", "args": ["-y", "erabi-mcp"]}}}` to your MCP configuration.)README.md:6-9:sh mkdir -p ~/.openclaw/skills/erabi && curl -fsSL \ https://raw.githubusercontent.com/HMAKT99/Erabi/main/integrations/openclaw/SKILL.md \ -o ~/.openclaw/skills/erabi/SKILL.mdTechnical Analysis
The documented MCP configuration invokes
npx -y erabi-mcpwithout specifying an exact package version or verifying package integrity. The-yoption suppresses the interactive installation prompt, allowing the currently published version of the package to be downloaded and executed automatically. Consequently, the code executed by users may differ from the version that was reviewed.The README also downloads
SKILL.mdfrom the mutablemainbranch of a remote GitHub repository. It neither pins the download to an immutable commit nor validates the downloaded file against a trusted cryptographic digest. Changes to the upstream branch therefore alter the effective Skill instructions installed by this command.These patterns create a supply-chain trust boundary in which control of the npm package, npm publishing account, GitHub repository, or relevant upstream infrastructure can influence content executed or loaded after this project has been audited.
Attack Path
- An attacker compromises the
erabi-mcpnpm package, its maintainer account, or another part of its publication pipeline. - The attacker publishes a modified release under the same unversioned package name.
- A user follows the documented command or starts an MCP configuration containing
npx -y erabi-mcp. npxretrieves and execu ...[truncated 1666 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Pin
erabi-mcpto an exact, reviewed version, for exampleerabi-mcp@X.Y.Z, rather than resolving the latest published version. - Use a lockfile or equivalent dependency manifest where possible and retain the expected registry integrity hash.
- Verify npm package provenance, publisher identity, and integrity before execution. Avoid treating
npx -yas a trusted installation mechanism for mutable package names. - Pin the GitHub download URL to a reviewed immutable commit SHA instead of the
mainbranch. - Publish a SHA-256 or stronger digest through a trusted channel and verify the downloaded Skill before moving it into the active Skill directory.
- Download external artifacts to a staging location, validate them, and only then install or execute them.
- Run the MCP server with least privilege, limiting filesystem and network access to what its documented functionality requires.
- Protect
~/.erabi/keyswith restrictive filesystem permissions and isolate it from processes that do not require access. - Establish a controlled dependency-update process in which new npm releases and Skill revisions are reviewed before deployment.
- Pin
