Back to skill

Security audit

IsItWater

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward IsItWater API helper, with normal API-key setup and location lookup behavior that users should treat with ordinary credential and privacy care.

Install this skill only if you are comfortable using the IsItWater service with an API key. Do not paste real API keys into chat or shared logs, prefer environment variables or a protected config file, and avoid asking it to geocode private home, work, or travel locations unless you are comfortable sending that location to external services.

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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (9)

Session Persistence

Medium
Category
Rogue Agent
Content
1. Check if `ISITWATER_API_KEY` is set in the environment.
2. If it is **not** set:
   - Inform the user: "You need an IsItWater API key. You can get one at https://isitwater.com"
   - Offer to help them sign up using the browser tool — navigate to https://isitwater.com, create an account, and generate an API key from the dashboard.
   - Once the user has a key, guide them to configure it in `~/.openclaw/openclaw.json`:

```json
Confidence
88% confidence
Finding
The skill instructs the user to persist an API key in a local configuration file after assisting with account creation. Persisting secrets is common, but coupling it with agent-guided signup and key generation increases the chance the agent becomes involved in secret handling, storage guidance, or accidental exposure through logs, screenshots, or unsafe file practices.

Description-Behavior Mismatch

Medium
Confidence
93% confidence
Finding
The skill expands beyond its stated purpose of checking whether coordinates are over water by instructing the agent to help the user create an external account through a browser flow. That broader behavior can induce unnecessary navigation, account-creation assistance, and credential-handling steps that increase phishing, privacy, and scope-creep risk without being required for core functionality.

Context-Inappropriate Capability

Medium
Confidence
94% confidence
Finding
Directing the agent to use a browser tool to navigate a website and assist with signup is not necessary to perform water/land lookups and materially broadens the agent's permissions and attack surface. If followed, this can expose the user to unintended web interactions, collection of sensitive information, or abuse of the browser capability under the guise of setup help.

External Transmission

Medium
Category
Data Exfiltration
Content
Check whether a coordinate is over water or land.

**Endpoint:** `GET https://api.isitwater.com/v1/locations/water`

**Headers:**
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
Check whether a coordinate is over water or land.

**Endpoint:** `GET https://api.isitwater.com/v1/locations/water`

**Headers:**
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
Check whether a coordinate is over water or land.

**Endpoint:** `GET https://api.isitwater.com/v1/locations/water`

**Headers:**
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
Check whether a coordinate is over water or land.

**Endpoint:** `GET https://api.isitwater.com/v1/locations/water`

**Headers:**
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Whitespace Padding

Medium
Category
Prompt Injection
Content
**Response Fields:**

| Field        | Type     | Description                                                                                         |
|--------------|----------|-----------------------------------------------------------------------------------------------------|
| `request_id` | string   | Unique identifier for the request                                                                   |
| `water`      | boolean  | `true` if the coordinate is over water, `false` if over land                                        |
Confidence
70% confidence
Finding
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Missing User Warnings

Low
Confidence
85% confidence
Finding
The skill instructs geocoding of place names but does not warn that the supplied location may be sent to a third-party geocoding service. Even if the data is not highly sensitive in all cases, place names can reveal private interests, home/work locations, or travel plans, so silent transmission creates a privacy issue.

Static analysis

No suspicious patterns detected.