T08 · Insecure Dependencies
- Location
SKILL.md:22- Finding
Unpinned npm Package Is Automatically Downloaded and Executed
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 22–23
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: MediumVulnerable Code
json "command": "npx", "args": ["-y", "gogcli-mcp-sheets"],Technical Analysis
The documented MCP configuration invokes
npxwith the-yoption and an unversioned npm package name. When the package is not already available in the relevant cache,npxcan retrieve the currently published version and execute it without interactive confirmation.Because no exact version, lockfile, integrity hash, or verified artifact is specified, the code executed at startup may differ from the package version that was originally reviewed. A compromised maintainer account, malicious package release, registry compromise, or unexpected upstream change could introduce arbitrary code into the MCP server execution path.
The resulting process runs with the operating-system privileges of the user launching the MCP client. It may also inherit the configured
GOG_ACCOUNTvalue and operate in an environment where Google authentication material is available to thegogcliintegration.Attack Path
- An attacker compromises the npm package, its publisher account, or another part of its publication pipeline.
- The attacker publishes a malicious release under the existing
gogcli-mcp-sheetspackage name. - A user starts the MCP configuration shown in
SKILL.md. npx -yresolves and downloads the unpinned current package without requesting confirmation.- The malicious package executes with the invoking user's local privileges.
- The payload attempts to access local files, environment data, authentication material, or Google Sheets resources available through the authenticated integration.
This path depends on compromise or malicious modification of the external package or its distribution channel; the audited file does not itself contain a malicious payload.
Impact Assessment
...[truncated 503 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
gogcli-mcp-sheetsto an exact, reviewed version rather than allowing automatic resolution of the latest release. - Install dependencies through a committed lockfile that records integrity hashes, and use a reproducible installation workflow such as
npm ci. - Avoid
npx -yfor security-sensitive server startup because it suppresses confirmation before package retrieval and execution. - Prefer a preinstalled, verified local executable or a package artifact obtained from a trusted and controlled source.
- Verify package provenance, publisher identity, signatures or attestations where available, and registry integrity before deployment.
- Review dependency updates before adoption and use automated supply-chain monitoring.
- Run the MCP server in a sandbox or isolated account with restricted filesystem, network, and process permissions.
- Grant the Google account and OAuth integration only the minimum spreadsheet scopes and document access required for the intended task.
- Separate sensitive spreadsheets from the account used by the integration and periodically revoke or rotate authentication material.
- Pin
