Back to skill

Security audit

Google Workspace (No Cloud Console)

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent Google Workspace integration, but it gives a third-party MCP server broad read/write account access through an unpinned auto-executed npm package and does not scope or warn about that access clearly enough.

Review this before installing if the Google account contains sensitive email, files, calendars, chats, or contacts. Prefer a dedicated or limited Google account, verify the npm package and publisher, pin a reviewed package version instead of using dynamic `npx -y`, and revoke/delete the stored OAuth credentials when no longer needed.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:27
Finding
Unpinned Third-Party Package Is Retrieved and Executed Automatically## Vulnerability Details **File Location**: `SKILL.md`, lines 27-28 **Vulnerability Type**: Unpinned and automatically executed npm dependency **Risk Level**: Medium ```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 home ``` ### Technical Analysis Both commands refer to `@presto-ai/google-workspace-mcp` without pinning an exact version. More importantly, the MCP server configuration invokes the package through `npx -y`. The `-y` option suppresses the installation confirmation, while the absence of a version constraint allows npm to resolve a package release that may differ from the one originally audited. The global installation does not remove this risk because the configured server separately invokes `npx`. The effective executable can therefore change after the Skill has been reviewed. A compromised package release, maintainer account, registry entry, or transitive dependency could introduce arbitrary code that executes with the local user's privileges. ### Attack Path 1. An attacker compromises the npm package, a maintainer account, or a transitive dependency and publishes a malicious release. 2. The user follows the Skill instructions or invokes the configured Google Workspace MCP server. 3. `npx -y` resolves and retrieves the unpinned package without requesting interactive installation approval. 4. npm executes the malicious package code with the privileges of the Agent's operating-system user. 5. The payload accesses local files and may target OAuth credentials stored in `~/.config/google-workspace-mcp/`. 6. If valid Google OAuth authorization is available, the compromised server may misuse the exposed Workspace capabilities to read, send, modify, create, download, or delete data where the granted scopes permit it. ### Impact Assessment Successful exploitation permits arbitrary code execution un ...[truncated 665 chars]
Remediation
## Remediation Suggestions 1. Pin the package to a reviewed, exact version in every command, for example: ```bash npm install -g @presto-ai/google-workspace-mcp@X.Y.Z ``` 2. Do not configure the server to retrieve packages dynamically with `npx -y`. Invoke a verified local executable from the pinned installation instead. 3. Use a lockfile and npm integrity metadata where installation architecture permits it. Preserve the reviewed dependency graph rather than resolving newer transitive dependencies automatically. 4. Verify package provenance, publisher identity, release signatures or attestations, and registry integrity before deployment. 5. Review updates in a controlled environment before changing the pinned version. Include source review, dependency-diff analysis, and malware scanning. 6. Restrict Google OAuth scopes to the minimum required operations and use a dedicated account when practical. 7. Protect `~/.config/google-workspace-mcp/` with user-only filesystem permissions and revoke tokens promptly if package compromise is suspected. 8. Run the MCP server in a sandbox or restricted service account with limited filesystem, network, and environment-variable access.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Rogue AgentSelf-Modification, Session Persistence
Findings (8)

Credential Access

High
Category
Privilege Escalation
Content
# Google Workspace Access (No Cloud Console!)

**Why this skill?** Traditional Google API access requires creating a project in Google Cloud Console, enabling APIs, creating OAuth credentials, and downloading client_secret.json. This skill skips ALL of that.

Uses `@presto-ai/google-workspace-mcp` — just sign in with your Google account and go.
Confidence
70% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Credential Access

High
Category
Privilege Escalation
Content
# Google Workspace Access (No Cloud Console!)

**Why this skill?** Traditional Google API access requires creating a project in Google Cloud Console, enabling APIs, creating OAuth credentials, and downloading client_secret.json. This skill skips ALL of that.

Uses `@presto-ai/google-workspace-mcp` — just sign in with your Google account and go.
Confidence
70% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
### Delete credentials
```bash
rm -rf ~/.config/google-workspace-mcp
```
Confidence
90% confidence
Finding
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Tool Parameter Abuse

High
Category
Tool Misuse
Content
### Delete credentials
```bash
rm -rf ~/.config/google-workspace-mcp
```
Confidence
90% confidence
Finding
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The skill enables broad access to Gmail, Calendar, Drive, Docs, Sheets, Chat, and People data and actions, but the documentation does not clearly warn users that OAuth sign-in grants significant read/write access across their Google Workspace account. This omission can cause users to authorize the tool without understanding the privacy and account-impact implications.

Session Persistence

Medium
Category
Rogue Agent
Content
# Send email
mcporter call --server google-workspace --tool "gmail.send" to="email@example.com" subject="Hi" body="Hello"

# Create draft
mcporter call --server google-workspace --tool "gmail.createDraft" to="email@example.com" subject="Hi" body="Hello"
```
Confidence
60% confidence
Finding
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The documented tool list includes modifying and destructive operations such as updating and deleting calendar events, sending messages, editing documents, and changing Gmail state, but there are no user-facing cautions about irreversible or account-impacting actions. This increases the risk of accidental misuse and social engineering through seemingly routine commands.

Unrestricted Tool Access

Medium
Category
Excessive Agency
Content
```bash
mcporter call --server google-workspace --tool "auth.clear"
```
Then run any command to trigger re-auth.

### Token refresh
```bash
Confidence
80% confidence
Finding
Skill grants unrestricted tool access without appropriate constraints. An agent with unfettered tool access can perform arbitrary actions including file modification, network requests, and code execution.

Static analysis

No suspicious patterns detected.