Back to skill

Security audit

OpenClaw Gemini Web

Security checks for vulnerabilities and agentic risk

Overview

This skill performs sensitive Gemini login, upload, and download automation, but those behaviors are disclosed, purpose-aligned, and not hidden or persistent.

Install only if you are comfortable letting an agent use a managed browser session for Gemini, upload user-provided files to Google's Gemini web service, and use already-provided Google login and TOTP secrets. Keep MFA secrets in a controlled location, avoid pasting them into chat, and review files before upload.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (9)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The declared description frames the skill as generic Gemini web interaction, but the documented behavior includes credential handling, TOTP generation, parsing otpauth URIs, and reading secrets from environment variables or JSON files. This mismatch can prevent users and reviewers from recognizing that the skill performs sensitive authentication operations and accesses high-value secrets.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding

The skill declares capabilities to read environment variables, local files, and interact with a third-party web service, but does not constrain or document tool scope via explicit permissions. In a skill that handles credentials, TOTP secrets, uploads local files, and downloads outputs, missing scope declarations increases the chance of over-broad access and unintended data exposure.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill supports uploading local documents and images to Gemini for analysis without clearly warning that those files will be transmitted to Google's online service. This can lead to unintended disclosure of sensitive local data, especially because the workflow encourages uploading source materials as context for analysis.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The skill automates login to a third-party Google/Gemini web service using stored credentials and generated TOTP codes, but does not clearly warn about the security and privacy implications of using account secrets in browser automation. If misused, this could expose credentials, session state, or account access through logs, screenshots, browser compromise, or unintended automation behavior.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script is a credential-handling utility that can load TOTP secrets from arbitrary environment variables or JSON files, which expands the attack surface for sensitive secret access inside an automation skill whose stated purpose is browser interaction. In an agent context, this can normalize reading MFA material from local runtime state or arbitrary files, increasing the risk of unintended credential exposure, misuse, or secret harvesting if the skill is invoked with attacker-influenced inputs.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The natural-language instructions and examples are presented exclusively in Chinese, which effectively forces a specific language for users of the skill. There is no indication that the language choice is optional or that the skill is intended only for a Chinese-language audience.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The skill downloads, moves, and renames Gemini outputs on local disk without clearly warning users that files will be written to and modified in local directories. While lower severity than credential or upload issues, silent filesystem writes can still surprise users, overwrite expectations, or place sensitive generated content in persistent storage.

Content

No source excerpt is available for this finding.

Dynamic attribute access via getattr()

Low
Category
Dangerous Code Execution
Confidence
50% confidence
Finding

Dynamic getattr() with a non-literal attribute name can access arbitrary object attributes, potentially bypassing access controls.

Content

Scanner excerpt · scripts/totp.py (reported line 107)May include surrounding context.

python
digest_name = algorithm.lower()
    try:
        digest = getattr(hashlib, digest_name)
    except AttributeError as exc:
        raise ValueError(f"unsupported algorithm: {algorithm}") from exc

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The script accepts highly sensitive MFA seeds from environment variables and files but provides no user-facing warning, confirmation, or safe-handling guidance. In an automation setting, this can cause operators to pass secrets through insecure channels or store them in casually accessible files, increasing the chance of accidental disclosure even if the script itself does not exfiltrate them.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.