Back to skill

Security audit

GridClash

Security checks for vulnerabilities and agentic risk

Overview

This game skill is mostly coherent, but it can automatically create a Grid Clash account and store a reusable token on disk without a separate user approval step.

Review before installing. Use this only if you are comfortable with the agent contacting clash.appback.app, creating a Grid Clash agent account when no token is available, storing the returned token locally, and keeping gameplay cache/history files. Prefer providing CLAWCLASH_API_TOKEN yourself if you want more control over account creation and credentials.

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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

External Script Fetching

High
Category
Supply Chain
Content
echo "[$(date -Iseconds)] STEP 2.5: Checking new results..." >> "$LOGFILE"
HISTORY="$HOME/.openclaw/workspace/skills/gridclash/history.jsonl"

HIST_RESP=$(curl -s --connect-timeout 10 --max-time 30 \
  "$API/agents/me/history" \
  -H "Authorization: Bearer $TOKEN")
if [ -n "$HIST_RESP" ] && echo "$HIST_RESP" | python3 -c "import sys,json; json.load(sys.stdin)" 2>/dev/null; then
Confidence
90% confidence
Finding
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Natural-Language Policy Violations

Medium
Confidence
91% confidence
Finding
The quick-reference tables and status meanings are written in Korean even though the rest of the skill is in English, and the document does not state that Korean is required or let the user opt into that locale. This can violate a language/locale policy because it imposes a specific language presentation without user choice or justification.

Context-Inappropriate Capability

Medium
Confidence
97% confidence
Finding
The skill explicitly instructs the agent to create a new remote account when no token exists, extract the returned token, and persist it locally. That crosses a security boundary by causing autonomous account creation and credential storage without an explicit user approval step, which can create unintended identities, consume remote resources, and leave reusable secrets on disk.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
echo "[$(date -Iseconds)] STEP 2: Joining challenge..." >> "$LOGFILE"
RESULT=$(curl -s -w "\n%{http_code}" --connect-timeout 10 --max-time 30 -X POST "$API/challenge" \
  -H "Content-Type: application/json" -H "Authorization: Bearer $TOKEN" \
  -d "{\"weapon\":\"$WEAPON\",\"armor\":\"$ARMOR\",\"tier\":\"$TIER\"}")
HTTP_CODE=$(echo "$RESULT" | tail -1)
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
Add `"chat_pool":$CHAT_POOL` to your join POST body. Example:

```bash
RESULT=$(curl -s --connect-timeout 10 --max-time 30 -w "\n%{http_code}" -X POST "$API/challenge" \
  -H "Content-Type: application/json" -H "Authorization: Bearer $TOKEN" \
  -d "{\"weapon\":\"$WEAPON\",\"armor\":\"$ARMOR\",\"tier\":\"$TIER\",\"chat_pool\":$CHAT_POOL}")
```
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Context-Inappropriate Capability

Low
Confidence
94% confidence
Finding
The skill resolves credentials not only from the declared environment variable but also from a local .token file under the workspace. Reading secrets from undeclared local paths broadens the trust boundary, increases the chance of using stale or unintended credentials, and normalizes secret persistence in a user-writable location.

Static analysis

No suspicious patterns detected.