T08 · Insecure Dependencies
- Location
SKILL.md:95- Finding
Unpinned Third-Party Package Is Automatically Retrieved and Executed
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:95-96
Vulnerability Type: Unpinned and automatically executed third-party dependency
Risk Level: HighVulnerable Code
bash npm install -g @presto-ai/google-workspace-mcp mcporter config add google-workspace --command "npx" --arg "-y" --arg "@presto-ai/google-workspace-mcp" --scope homeTechnical Analysis
The documented installation and configuration commands refer to
@presto-ai/google-workspace-mcpwithout an exact version. Consequently, the package registry determines which release is installed and executed at the time each user follows these instructions.The first command installs the package globally, modifying the user's environment. The second configures
npx -yto retrieve and execute the package automatically without interactive confirmation. The effective executable is not included in this project and could change after the skill has been reviewed. No lockfile, package integrity hash, signature validation, or trusted release reference is supplied.This dependency is particularly sensitive because the skill directs users to authorize access to Gmail, Calendar, Drive, Docs, and Sheets. A compromised package release would therefore execute with the local user's operating-system privileges and could potentially receive OAuth credentials and private Workspace content.
Attack Path
- An attacker compromises the package publisher account, registry distribution path, or an unpinned future package release.
- The attacker publishes a modified version containing malicious installation or runtime behavior.
- A user follows the instructions in
SKILL.md. npm installor the configurednpx -ycommand resolves the attacker-controlled version because no exact version is specified.- The package executes under the user's local account.
- When the user completes OAuth authorization, the compromised package can attempt to access tok ...[truncated 921 chars]
- Remediation
View remediation
Remediation Suggestions
-
Pin the package to one reviewed, immutable version in every installation and execution command:
bash npm install -g @presto-ai/google-workspace-mcp@1.0.0 mcporter config add google-workspace --command "npx" --arg "--no-install" --arg "@presto-ai/google-workspace-mcp@1.0.0" --scope homeThe example version must be replaced with the specific version that has actually been reviewed.
-
Avoid combining a global installation with an independently resolving
npxcommand. Execute only the already installed and verified binary, or use a project-local dependency controlled by a lockfile. -
Do not use automatic package acceptance through
npx -yfor a component handling OAuth credentials and sensitive account data. -
Commit and enforce a lockfile where project-local package installation is possible. Use deterministic installation such as
npm ci. -
Verify registry integrity metadata, package provenance, signatures, and the publisher identity before installation.
-
Document the package's official source repository, expected checksum or integrity value, reviewed version, and required OAuth scopes.
-
Run the MCP package with least privilege and isolate it from unrelated local files, secrets, and environment variables where supported.
-
Review each dependency update before changing the pinned version, particularly installation scripts and code that handles OAuth tokens or outbound network requests.
-
