T08 · Insecure Dependencies
- Location
SKILL.md:39- Finding
Unpinned npm Package Execution Through npx
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 39–49; vulnerable command on lines 45–46
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumComplete Code Snippet:
json { "mcpServers": { "oraclaw": { "command": "npx", "args": ["tsx", "path/to/oraclaw-mcp/index.ts"] } } }Technical Analysis
The MCP configuration launches
tsxthroughnpxwithout specifying an exact package version. Depending on the local npm andnpxconfiguration, this can cause the package to be resolved or downloaded from an external npm registry at execution time. The project provides no dependency manifest, lockfile, integrity hash, or vendored copy that constrains whichtsxrelease will execute.The referenced
path/to/oraclaw-mcp/index.tsimplementation is also absent from the audited project. Consequently, neither the remotely resolved execution dependency nor the MCP server code ultimately run by it can be verified from the available artifact.This is an avoidable software supply-chain risk. If the registry package, one of its transitive dependencies, or the dependency-resolution process is compromised, attacker-controlled code could execute under the account running the MCP client.
Attack Path
- A user follows the documented MCP configuration.
- The MCP client starts the configured
npx tsx path/to/oraclaw-mcp/index.tscommand. - If
tsxis unavailable locally, or resolution otherwise permits remote retrieval,npxresolves or downloads an unpinned package and its dependencies. - A compromised package release or transitive dependency executes attacker-controlled initialization or runtime code.
- That code runs with the privileges and environment of the MCP client process.
- The malicious code can access resources available to that process, potentially including local files, network connectivity, and exposed environment variables such ...[truncated 523 chars]
- Remediation
View remediation
Remediation Suggestions
-
Add the MCP implementation to the reviewed project so the executed source can be audited.
-
Declare
tsxas a local development dependency using an exact, reviewed version rather than resolving it implicitly at runtime. -
Commit a dependency lockfile and use deterministic installation such as
npm ci. -
Enforce dependency integrity verification and review both direct and transitive dependencies.
-
Invoke only the locally installed executable. If
npxremains necessary, disable package installation, for example:json { "mcpServers": { "oraclaw": { "command": "npx", "args": ["--no-install", "tsx", "path/to/oraclaw-mcp/index.ts"] } } } -
Prefer a fixed local executable path or a packaged, integrity-verified release over runtime package resolution.
-
Run the MCP server with least privilege and expose only the environment variables, files, and network destinations it requires.
-
Add automated dependency scanning and controlled upgrade review to detect compromised or vulnerable releases.
-
