Back to skill

Security audit

Google Research Pro

Security checks for vulnerabilities and agentic risk

Overview

The skill has a clear search-and-Telegram purpose, but it relies on executing an unreviewed local Python script with user input in a shell-style command.

Review this before installing. Only use it if you control and have audited the referenced `bot.py`, restrict who can modify it, pass arguments without shell interpretation, pin/install dependencies safely, and explicitly configure the Telegram destination and credentials.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (2)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:23
Finding

User-Controlled Search Keyword Is Interpolated into a Shell Command

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 23-26
Vulnerability Type: OS command injection
Risk Level: High

Vulnerable Code:

markdown
- Input: keyword (string) from UserInput
- Action: Run Python script
  - Command: python C:\Users\Admin\OneDrive\Desktop\LearnOpCL\bot.py "{keyword}"
  - Working directory: C:\Users\Admin\OneDrive\Desktop\LearnOpCL

Technical Analysis

The Skill directs the workflow to interpolate the user-controlled keyword directly into a command string. Enclosing the value in double quotation marks does not provide reliable command-injection protection. If the workflow executes this string through a command shell, a malicious keyword can close the quoted argument and introduce shell operators or additional commands.

The documentation does not require validation, escaping, an allowlist, or use of a process API that passes arguments without shell interpretation. Consequently, the safety of command execution depends on unspecified workflow behavior.

Attack Path

  1. An attacker submits a search keyword containing a closing quotation mark and shell metacharacters appropriate to the Windows command interpreter used by the workflow.
  2. The workflow replaces {keyword} with the attacker-controlled text.
  3. The resulting command is passed to a shell rather than executed through a structured argument array.
  4. The shell treats the injected operators as command syntax.
  5. The injected command executes with the permissions of the workflow or agent account.

Exploitation is contingent on the workflow using shell-based execution, but the documented command construction is unsafe and does not prohibit that execution mode.

Impact Assessment

Successful exploitation could provide arbitrary command execution under the workflow account. The attacker could access files available to that account, alter local data, invoke installed programs, make outbound network con ...[truncated 152 chars]

Remediation
View remediation

Remediation Suggestions

  • Do not construct a shell command by concatenating or interpolating the search keyword.
  • Invoke Python through a process API with shell execution disabled and pass each argument separately, such as an argument array containing the interpreter, script path, and keyword.
  • Validate the keyword against documented length and character constraints before execution.
  • Avoid relying on quoting or ad hoc escaping as the primary defense.
  • Run the search component under a restricted account with only the filesystem and network permissions required for searching.
  • Add tests covering quotation marks, command separators, variable expansion, newlines, and other shell metacharacters.

T08 · Insecure Dependencies

Warning
Location
SKILL.md:23
Finding

Core Functionality Delegated to an Unbundled and Unverifiable Local Script

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 23-29
Vulnerability Type: Unverified external local component
Risk Level: Medium

Vulnerable Code:

markdown
- Input: keyword (string) from UserInput
- Action: Run Python script
  - Command: python C:\Users\Admin\OneDrive\Desktop\LearnOpCL\bot.py "{keyword}"
  - Working directory: C:\Users\Admin\OneDrive\Desktop\LearnOpCL
  - Notes: Ensure Playwright browsers are installed (playwright install)

- Output: search_results (structured data, e.g., JSON) containing titles and summaries from the top 3-5 results

Technical Analysis

The Skill delegates its primary search behavior to bot.py at an absolute, user-specific path outside the audited project. The project contains only SKILL.md; therefore, the referenced script's source, integrity, dependencies, network behavior, credential access, and output handling cannot be reviewed.

An absolute external path creates a trust boundary that is not represented in the Skill package. Anyone or anything capable of modifying the referenced file can change the effective behavior after the Skill has been reviewed. The documentation provides no integrity hash, signature check, ownership requirement, version pinning, or permission validation.

Playwright installation is also requested without specifying a validated version, although the available evidence does not establish that a malicious package or browser artifact is actually installed.

Attack Path

  1. An attacker or compromised local process obtains write access to C:\Users\Admin\OneDrive\Desktop\LearnOpCL\bot.py or its containing directory.
  2. The attacker replaces or modifies the script with unauthorized code.
  3. A user invokes the Skill for an ordinary search.
  4. The workflow executes the modified script as trusted functionality.
  5. The replacement code operates with the workflow account's permissions and can conceal its activity behind a ...[truncated 622 chars]
Remediation
View remediation

Remediation Suggestions

  • Include bot.py in the reviewed Skill package and reference it through a project-relative path.
  • Version-control and audit the script together with the Skill definition.
  • Restrict write access to the script and its parent directory.
  • Verify the script's cryptographic hash or signature before execution if it must remain external.
  • Pin Playwright and other dependencies to reviewed versions using a lockfile and trusted package sources.
  • Document all required filesystem, environment-variable, browser, Google, and Telegram permissions.
  • Execute the component in a sandbox with restricted filesystem access and outbound network access limited to explicitly required destinations.
  • Require explicit configuration and user confirmation before forwarding search terms or summaries to Telegram.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep

Static analysis

No suspicious patterns detected.