Back to skill

Security audit

geo-schema

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent schema audit helper, but its URL-fetching workflow is under-scoped and uses an unsafe shell command pattern.

Review before installing. Use it only on public or explicitly approved sites, avoid internal or staging URLs, and require safe URL handling before use: quote/pass URLs as data arguments, restrict schemes and destinations, and avoid resolving external profile links unless the user approves them.

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 (1)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:26
Finding

Unvalidated and Unquoted User-Controlled URL Passed to a Shell Command

Content
View full analysis
` content, which removes JSON-LD blocks. Use `seogeo fetch` instead: ```bash seogeo fetch --json ``` ``` ### Technical Analysis The skill directs the Agent to substitute a target URL into a Bash command without quoting the argument or prescribing any input validation. If the Agent inserts user-controlled input literally, shell metacharacters such as `;`, `&&`, command substitutions, or redirection operators may be interpreted by the shell rather than treated as part of the URL. The instruction also does not restrict URL schemes, destination addresses, DNS resolution, redirects, or ports. Consequently, the fetch operation could be directed toward loopback, private, link-local, or cloud metadata addresses. Whether a particular request succeeds depends on the validation implemented by the undocumented `seogeo` executable and the network permissions of the Agent environment. ### Attack Path #### Command-Injection Path 1. An attacker supplies a crafted target value containing shell syntax, such as: ```text https://example.com; attacker-controlled-command ``` 2. The Agent follows the documented workflow and substitutes that value directly into: ```bash seogeo fetch https://example.com; attacker-controlled-command --json ``` 3. The shell treats the semicolon as a command separator. 4. The injected command executes with the operating-system permissions granted to the Agent process. This path applies when substitution is performed literally in a shell command without argument-safe quoting or validation. #### SSRF Path 1. An attacker supplies a URL targeting an internal resource, such as a loopback service, RFC1918 address, link-local endpoint, or cloud metadata ...[truncated 1112 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (1)

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill instructs the agent to fetch target pages and validate schema URLs, including checking whether linked URLs resolve, but the description does not warn users that running it may perform outbound network requests and transmit target site and linked-profile data to external services. This creates a real transparency and privacy issue: users may unknowingly scan third-party sites or leak internal/staging URLs, and the use of WebFetch/Bash/Web tooling increases the likelihood of unintentional external requests.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.