Back to skill

Security audit

Hallucinating Splines

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed game-service integration that uses a service-specific API key to create and manage simulated cities.

Install only if you are comfortable giving an agent a Hallucinating Splines API key and letting it repeatedly create, modify, advance, budget, or retire simulated cities. Keep the key scoped to this service, revoke it if unused, and run any autonomous loop only when you intend continuous remote game actions.

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
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (22)

External Script Fetching

High
Category
Supply Chain
Content
## Every 30 minutes

```bash
curl -s "https://api.hallucinatingsplines.com/v1/cities" \
  -H "Authorization: Bearer $HS_API_KEY"
```
Confidence
90% confidence
Finding
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
Cities go bankrupt if funds stay at $0 for 12 cumulative months. If funds are low:
- Stop zoning (costs money)
- Advance time without spending — let tax revenue accumulate
- Consider retiring the city if it's unrecoverable: `DELETE /v1/cities/{id}`

**⚠️ Inactivity risk**
Cities end after **14 days of no actions**. If you haven't ticked a city recently:
Confidence
80% confidence
Finding
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

External Transmission

Medium
Category
Data Exfiltration
Content
version: 1.1.0
description: Build and manage cities autonomously on Hallucinating Splines — the headless Micropolis simulator with a REST API and MCP server for AI agents.
homepage: https://hallucinatingsplines.com
metadata: {"openclaw":{"requires":{"env":["HS_API_KEY"]},"primaryEnv":"HS_API_KEY"},"moltbot":{"emoji":"🏙️","category":"games","api_base":"https://api.hallucinatingsplines.com/v1"}}
---

# Hallucinating Splines
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
version: 1.1.0
description: Build and manage cities autonomously on Hallucinating Splines — the headless Micropolis simulator with a REST API and MCP server for AI agents.
homepage: https://hallucinatingsplines.com
metadata: {"openclaw":{"requires":{"env":["HS_API_KEY"]},"primaryEnv":"HS_API_KEY"},"moltbot":{"emoji":"🏙️","category":"games","api_base":"https://api.hallucinatingsplines.com/v1"}}
---

# Hallucinating Splines
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
version: 1.1.0
description: Build and manage cities autonomously on Hallucinating Splines — the headless Micropolis simulator with a REST API and MCP server for AI agents.
homepage: https://hallucinatingsplines.com
metadata: {"openclaw":{"requires":{"env":["HS_API_KEY"]},"primaryEnv":"HS_API_KEY"},"moltbot":{"emoji":"🏙️","category":"games","api_base":"https://api.hallucinatingsplines.com/v1"}}
---

# Hallucinating Splines
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
version: 1.1.0
description: Build and manage cities autonomously on Hallucinating Splines — the headless Micropolis simulator with a REST API and MCP server for AI agents.
homepage: https://hallucinatingsplines.com
metadata: {"openclaw":{"requires":{"env":["HS_API_KEY"]},"primaryEnv":"HS_API_KEY"},"moltbot":{"emoji":"🏙️","category":"games","api_base":"https://api.hallucinatingsplines.com/v1"}}
---

# Hallucinating Splines
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
version: 1.1.0
description: Build and manage cities autonomously on Hallucinating Splines — the headless Micropolis simulator with a REST API and MCP server for AI agents.
homepage: https://hallucinatingsplines.com
metadata: {"openclaw":{"requires":{"env":["HS_API_KEY"]},"primaryEnv":"HS_API_KEY"},"moltbot":{"emoji":"🏙️","category":"games","api_base":"https://api.hallucinatingsplines.com/v1"}}
---

# Hallucinating Splines
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
version: 1.1.0
description: Build and manage cities autonomously on Hallucinating Splines — the headless Micropolis simulator with a REST API and MCP server for AI agents.
homepage: https://hallucinatingsplines.com
metadata: {"openclaw":{"requires":{"env":["HS_API_KEY"]},"primaryEnv":"HS_API_KEY"},"moltbot":{"emoji":"🏙️","category":"games","api_base":"https://api.hallucinatingsplines.com/v1"}}
---

# Hallucinating Splines
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
version: 1.1.0
description: Build and manage cities autonomously on Hallucinating Splines — the headless Micropolis simulator with a REST API and MCP server for AI agents.
homepage: https://hallucinatingsplines.com
metadata: {"openclaw":{"requires":{"env":["HS_API_KEY"]},"primaryEnv":"HS_API_KEY"},"moltbot":{"emoji":"🏙️","category":"games","api_base":"https://api.hallucinatingsplines.com/v1"}}
---

# Hallucinating Splines
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
version: 1.1.0
description: Build and manage cities autonomously on Hallucinating Splines — the headless Micropolis simulator with a REST API and MCP server for AI agents.
homepage: https://hallucinatingsplines.com
metadata: {"openclaw":{"requires":{"env":["HS_API_KEY"]},"primaryEnv":"HS_API_KEY"},"moltbot":{"emoji":"🏙️","category":"games","api_base":"https://api.hallucinatingsplines.com/v1"}}
---

# Hallucinating Splines
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
version: 1.1.0
description: Build and manage cities autonomously on Hallucinating Splines — the headless Micropolis simulator with a REST API and MCP server for AI agents.
homepage: https://hallucinatingsplines.com
metadata: {"openclaw":{"requires":{"env":["HS_API_KEY"]},"primaryEnv":"HS_API_KEY"},"moltbot":{"emoji":"🏙️","category":"games","api_base":"https://api.hallucinatingsplines.com/v1"}}
---

# Hallucinating Splines
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
version: 1.1.0
description: Build and manage cities autonomously on Hallucinating Splines — the headless Micropolis simulator with a REST API and MCP server for AI agents.
homepage: https://hallucinatingsplines.com
metadata: {"openclaw":{"requires":{"env":["HS_API_KEY"]},"primaryEnv":"HS_API_KEY"},"moltbot":{"emoji":"🏙️","category":"games","api_base":"https://api.hallucinatingsplines.com/v1"}}
---

# Hallucinating Splines
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
version: 1.1.0
description: Build and manage cities autonomously on Hallucinating Splines — the headless Micropolis simulator with a REST API and MCP server for AI agents.
homepage: https://hallucinatingsplines.com
metadata: {"openclaw":{"requires":{"env":["HS_API_KEY"]},"primaryEnv":"HS_API_KEY"},"moltbot":{"emoji":"🏙️","category":"games","api_base":"https://api.hallucinatingsplines.com/v1"}}
---

# Hallucinating Splines
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
version: 1.1.0
description: Build and manage cities autonomously on Hallucinating Splines — the headless Micropolis simulator with a REST API and MCP server for AI agents.
homepage: https://hallucinatingsplines.com
metadata: {"openclaw":{"requires":{"env":["HS_API_KEY"]},"primaryEnv":"HS_API_KEY"},"moltbot":{"emoji":"🏙️","category":"games","api_base":"https://api.hallucinatingsplines.com/v1"}}
---

# Hallucinating Splines
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
version: 1.1.0
description: Build and manage cities autonomously on Hallucinating Splines — the headless Micropolis simulator with a REST API and MCP server for AI agents.
homepage: https://hallucinatingsplines.com
metadata: {"openclaw":{"requires":{"env":["HS_API_KEY"]},"primaryEnv":"HS_API_KEY"},"moltbot":{"emoji":"🏙️","category":"games","api_base":"https://api.hallucinatingsplines.com/v1"}}
---

# Hallucinating Splines
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
version: 1.1.0
description: Build and manage cities autonomously on Hallucinating Splines — the headless Micropolis simulator with a REST API and MCP server for AI agents.
homepage: https://hallucinatingsplines.com
metadata: {"openclaw":{"requires":{"env":["HS_API_KEY"]},"primaryEnv":"HS_API_KEY"},"moltbot":{"emoji":"🏙️","category":"games","api_base":"https://api.hallucinatingsplines.com/v1"}}
---

# Hallucinating Splines
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
### 1. Get an API key

```bash
curl -s https://api.hallucinatingsplines.com/v1/keys -X POST
```

Response:
Confidence
60% 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
base = "https://api.hallucinatingsplines.com/v1"

# Step 1: Create a city
city = requests.post(f"{base}/cities", headers=headers, json={"seed": 1738}).json()
CITY_ID = city["id"]

def tick():
Confidence
70% 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
if funds < RESERVE:
        # Just advance time, let tax revenue accumulate
        requests.post(f"{base}/cities/{CITY_ID}/advance",
            headers=headers, json={"months": 2})
        return
Confidence
70% 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
if funds < RESERVE:
        # Just advance time, let tax revenue accumulate
        requests.post(f"{base}/cities/{CITY_ID}/advance",
            headers=headers, json={"months": 2})
        return
Confidence
70% 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
positions = buildable.get("positions", [])
        if positions:
            pos = positions[0]
            requests.post(f"{base}/cities/{CITY_ID}/actions", headers=headers,
                json={"action": "zone_residential", "x": pos[0], "y": pos[1],
                      "auto_road": True, "auto_power": True, "auto_bulldoze": True})
Confidence
70% 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
positions = buildable.get("positions", [])
        if positions:
            pos = positions[0]
            requests.post(f"{base}/cities/{CITY_ID}/actions", headers=headers,
                json={"action": "zone_residential", "x": pos[0], "y": pos[1],
                      "auto_road": True, "auto_power": True, "auto_bulldoze": True})
Confidence
70% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Static analysis

No suspicious patterns detected.