Back to skill

Security audit

Tmp.LvRAV9oxHk

Security checks for vulnerabilities and agentic risk

Overview

This Google Slides skill is mostly purpose-aligned, but it uses an unpinned auto-downloaded MCP package and exposes a loosely scoped run fallback with Google account access.

Install only if you trust the npm package and its publisher, and run it with the least-privilege Google account practical. Review `gog_slides_run` carefully before allowing agents to use it, and prefer working on copied presentations when deleting or replacing slides.

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

Error
Location
SKILL.md:21
Finding

Unpinned Third-Party Package Is Automatically Downloaded and Executed

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 21–23
Vulnerability Type: Unpinned and automatically executed npm dependency
Risk Level: High

Vulnerable Code Snippet:

json
"gogcli-slides": {
  "command": "npx",
  "args": ["-y", "gogcli-mcp-slides"],

Technical Analysis

The MCP configuration invokes npx with the -y option and references gogcli-mcp-slides without an exact version or integrity constraint. Consequently, npm can retrieve and execute the version currently resolved by the configured package registry without asking for user confirmation.

Because the resolved artifact is mutable after this Skill has been audited, the code eventually executed is not fully represented by the reviewed project. A compromised package release, npm publisher account, package registry, or transitive dependency could introduce arbitrary executable code. The -y option further removes the interactive confirmation that might otherwise alert the user to package installation.

There is no evidence in the audited file that the package is currently malicious. The vulnerability is the unsafe dependency acquisition and execution mechanism.

Attack Path

  1. An attacker compromises the npm package publisher, package distribution channel, or a dependency resolved by gogcli-mcp-slides.
  2. The attacker publishes a malicious package version that becomes the version selected by the unpinned package reference.
  3. A user or Agent activates the documented MCP configuration.
  4. npx -y gogcli-mcp-slides downloads the mutable package without interactive approval.
  5. npm executes package-controlled installation or runtime code with the privileges of the user running the MCP server.
  6. The malicious code can access resources available to that process, potentially including local files, environment variables, network connectivity, and the configured Google account authentication context.

Impact Assessm

...[truncated 761 chars]

Remediation
View remediation

Remediation Suggestions

  1. Pin the dependency to a reviewed exact version, for example:

    json
    "args": ["gogcli-mcp-slides@<audited-exact-version>"]
    

    Do not use version ranges or floating tags such as latest.

  2. Install the dependency through a committed lockfile and use a reproducible installation command such as npm ci.

  3. Verify package integrity using the npm lockfile integrity value, a trusted artifact hash, or a signed release verification process.

  4. Remove -y where practical so unexpected package installation requires explicit user approval.

  5. Confirm and document that the npm package publisher and package contents correspond to the referenced source repository.

  6. Review the package and its transitive dependencies before approving a version update. Use automated dependency scanning and require manual review for lockfile changes.

  7. Run the MCP server in a restricted environment with minimum filesystem access, limited environment variables, constrained outbound network access, and least-privilege Google OAuth scopes.

  8. Avoid exposing long-lived Google credentials directly to a dynamically downloaded process. Prefer short-lived credentials and narrowly scoped authorization.

Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (3)

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

A generic gog_slides_run escape hatch materially expands the attack surface beyond the stated Slides-only purpose. In an agent setting, such a catch-all tool can be used to bypass narrower tool restrictions, potentially enabling unintended operations against Google resources or arbitrary backend functionality not visible in the skill contract.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The manifest and description claim the skill is limited to auth and Google Slides functionality, but the body explicitly advertises a generic run escape hatch. That mismatch weakens trust boundaries for tool selection and review, because users and orchestrators may believe the skill is narrowly scoped when it actually exposes broader execution capability.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The skill includes destructive actions such as deleting slides, replacing slide content, and updating notes without any warning or confirmation guidance. In an agent workflow, this increases the chance of accidental or unauthorized modification of user presentations, especially when requests are ambiguous or maliciously phrased.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.