T08 · Insecure Dependencies
- Location
SKILL.md:27- Finding
Automatic Execution of an Unpinned npm Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 27–30
Vulnerability Type: Unpinned third-party package execution
Risk Level: Mediumjson "command": "npx", "args": ["-y", "@roomi-fields/osc-bridge", "mcp", "--devices-dir", "/absolute/path/to/osc-bridge/devices"]Technical Analysis
The recommended MCP configuration invokes
npx -ywith the package name@roomi-fields/osc-bridgebut does not specify an exact package version or integrity digest. The-yoption automatically accepts installation prompts. As a result, npm may retrieve and execute whichever package version the registry resolves when the MCP server starts.This prevents the executable dependency from being reproducibly tied to an audited version. A future release can therefore execute code different from the code originally reviewed. The audited project contains neither the dependency's implementation nor a lockfile or integrity metadata that would allow the executed artifact to be verified.
This finding establishes a supply-chain exposure; it is not evidence that the named package is currently malicious.
Attack Path
- An attacker compromises the package maintainer account, npm publication channel, package itself, or a transitive dependency.
- The attacker publishes a malicious version that can be selected by the unpinned package reference.
- A user or agent launches the configured MCP server.
npx -yretrieves the registry-resolved package without requesting installation confirmation.- npm executes the malicious package in the local user context.
- The payload can exercise the filesystem, process, and network permissions available to that user.
Impact Assessment
Successful exploitation would provide arbitrary code execution with the privileges of the account running the MCP server. Depending on that account's permissions and environment, the malicious package could read or modify accessibl ...[truncated 347 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the package to an exact reviewed version, such as
@roomi-fields/osc-bridge@X.Y.Z, rather than relying on registry resolution of an unversioned reference. - Install the dependency through a committed lockfile and use a reproducible, lockfile-enforcing installation command.
- Verify package provenance, signatures where available, and registry integrity metadata before execution.
- Prefer invoking a locally installed and reviewed binary rather than downloading a package at MCP startup.
- Remove
-ywhere interactive approval is practical so unexpected installation is not accepted automatically. - Run the MCP server under a dedicated least-privileged account or sandbox with narrowly scoped filesystem and network access.
- Establish a controlled dependency-update process in which new versions are reviewed and tested before the pinned version is changed.
- Pin the package to an exact reviewed version, such as
