Back to skill

Security audit

geo

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches a GEO/SEO audit purpose, but it grants broad web, shell, write, persistent-storage, PDF-rendering, and self-update behaviors without enough scoping or safeguards.

Review before installing. Use this only on URLs you trust or are authorized to audit, avoid running PDF export on hostile sites unless the Chrome sandbox issue is fixed, and treat /geo update and ~/.geo-prospects storage as high-impact behaviors that need explicit approval and cleanup expectations.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:65
Finding

Unrestricted User-Controlled URL Fetching Enables SSRF

Content
View full analysis
`) **Phase 1: Discovery (Sequential)** 1. Fetch homepage HTML (curl or WebFetch) 2. Detect business type (SaaS, Local, E-commerce, Publisher, Agency, Other) 3. Extract key pages from sitemap.xml or internal links (up to 50 pages) ``` The skill description additionally states: ```markdown "brand mentions", "GEO report", or any URL for analysis. ``` ### Technical Analysis The skill instructs the agent to fetch a user-supplied URL with `curl` or `WebFetch`, but it does not require any of the following controls: - Restriction to the `http` and `https` schemes. - Rejection of loopback, private, link-local, multicast, and reserved IP ranges. - DNS resolution checks to prevent DNS rebinding. - Validation of every redirect target. - Restrictions on nonstandard ports. - Response-size limits or strict redirect limits. - Separation between fetched content and generated reports. Because the accepted input is described as “any URL,” an attacker can provide a URL targeting a resource accessible from the agent's execution environment but not directly accessible to the attacker. Relevant targets may include localhost services, internal administrative interfaces, private network applications, container control endpoints, and cloud instance metadata services. The response is subsequently analyzed and may be included in generated audit output. This creates a potential channel for disclosing data returned by internal services. ### Attack Path 1. An attacker invokes a supported command with a crafted target, such as an address resolving to localhost, a private network, or a cloud metadata endpoint. 2. The skill follows its discovery wo ...[truncated 1317 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:207
Finding

Chrome Sandbox Disabled While Rendering Potentially Untrusted Report Content

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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
Findings (5)

Vague Triggers

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The activation guidance includes very broad terms such as 'optimize' and even any URL, which can cause the skill to trigger in unrelated contexts. Over-broad invocation increases the risk of unexpected network access, file generation, and other side effects when a user did not intend to run a GEO audit workflow.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill is presented as a GEO/SEO analysis tool, but it also exposes CRM-lite prospect management and proposal generation features that write to persistent user-home storage. This expands the operational scope beyond what a user would reasonably expect from a website auditing skill, increasing the chance of unintended data creation, retention, and misuse of business information.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The documented /geo update command can pull updates from an upstream repository, but this self-update capability is not disclosed in the top-level description. Undisclosed remote update behavior is risky because it can change the skill's behavior over time, potentially introducing unreviewed instructions or malicious content into future runs.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill documents writes to deployment files like llms.txt and persistent home-directory paths such as ~/.geo-prospects/... without an explicit warning or confirmation step. Silent or poorly disclosed writes can surprise users, leak business data into long-lived local storage, and overwrite or create files outside the immediate working context.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The PDF workflow invokes external desktop tooling (pandoc and a headless Google Chrome binary) to transform reports, which is an execution capability beyond pure website analysis. While report generation is in scope, depending on local binary execution is a materially broader capability that should be explicitly justified or isolated.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.