Back to skill

Security audit

clawtan

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent online game client, but it asks the agent to globally install and run an unpinned third-party npm package that stores session credentials and connects to an external server.

Install only if you are comfortable running the `clawtan` npm package as local executable code and sending gameplay/chat traffic to the Clawtan service. Prefer installing in an isolated environment, avoid sudo, review or pin the package version if possible, and periodically clear old `~/.clawtan_sessions/` files if you stop using it.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:40
Finding
Unpinned Global Installation of an Unaudited npm Package## Vulnerability Details **File Location**: `SKILL.md:40-47` **Vulnerability Type**: Unpinned third-party dependency installed globally **Risk Level**: Medium ### Vulnerable Code ```markdown ## Setup ### Install the CLI ```bash npm install -g clawtan ``` Requires Python 3.10+ on the system (the CLI is a thin Node wrapper that invokes Python under the hood). ``` ### Technical Analysis The Skill directs the Agent to install the latest available version of the `clawtan` npm package globally. It does not pin an exact version, enforce a package integrity digest, provide a lockfile, or include the package source for inspection. An npm installation can execute package lifecycle scripts. Because the installation uses `-g`, the package also exposes an executable in the user's global command environment. The effective code may therefore change after this Skill has been reviewed. The external package's Node wrapper, Python implementation, transitive dependencies, installation hooks, credential handling, and network behavior cannot be verified from the four documentation files included in this project. This finding does not establish that the current `clawtan` package is malicious. The vulnerability is the unsafe dependency acquisition and execution process, which creates a supply-chain attack surface beyond the minimum privileges needed to run a game client. ### Attack Path 1. An attacker compromises the npm publisher account, package repository, release pipeline, or a transitive dependency. 2. The attacker publishes a malicious release under the expected `clawtan` package name. 3. The Agent executes `npm install -g clawtan` without an exact version or verified integrity digest. 4. npm downloads the mutable package release and may execute attacker-controlled lifecycle scripts during installation. 5. The malicious package runs with the permissions of the user performing the installation. 6. The globally installed `clawtan` executable can subsequently perform att ...[truncated 1000 chars]
Remediation
## Remediation Suggestions 1. Pin the dependency to a reviewed exact version rather than installing the latest release: ```bash npm install --global --ignore-scripts clawtan@EXACT_REVIEWED_VERSION ``` 2. Verify the package archive against a trusted integrity digest or signed release before installation. 3. Include a lockfile and review all transitive dependencies. 4. Avoid global installation. Install the CLI in a dedicated project directory or isolated container with a restricted executable path. 5. Disable npm lifecycle scripts where they are not required. If scripts are necessary, review them before allowing execution. 6. Run the CLI as an unprivileged user with access limited to required game-session files. 7. Restrict outbound network access to the documented game service and validate the destination at runtime. 8. Bundle auditable CLI source with the Skill or reference a verifiable source repository and immutable release commit. 9. Document package provenance, expected checksums, required filesystem paths, and expected network endpoints. 10. Never execute the installation with `sudo` or another elevated account.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (4)

Session Persistence

Medium
Category
Rogue Agent
Content
- **Play the game yourself.** You are a player. Read the board, evaluate your
  options, and make strategic decisions each turn.
- **Do NOT write scripts or automation.** Never create Python files, Node scripts,
  or any programmatic wrappers. Every action is a single `clawtan` CLI call you
  run via bash.
- **Do NOT delegate turns.** You own every decision from setup placement to
Confidence
60% confidence
Finding
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

External Transmission

Medium
Category
Data Exfiltration
Content
### Server Configuration

The default server URL is `https://api.clawtan.com/`. You should not need to
change this. To override it (e.g. for local development):

```bash
Confidence
95% confidence
Finding
The skill directs installation and use of a CLI that communicates with an external service at api.clawtan.com, which transmits game data, chat content, and likely session credentials off-host. This creates an outbound network/data exposure surface and executes untrusted third-party software from npm, increasing supply-chain and privacy risk.

Intent-Code Divergence

Low
Confidence
94% confidence
Finding
The rulebook contains a genuine ambiguity: one section says the turn must begin with a mandatory roll, while the edge-case note says a development card can be played before or after rolling. In an agent-driven game skill, contradictory rules can cause the agent to choose invalid actions, get stuck, or behave unpredictably when the server enforces a different interpretation.

Missing User Warnings

Low
Confidence
92% confidence
Finding
The skill explicitly instructs the agent to append to history.md and rewrite strategy.md after gameplay, which causes local file modification without any user confirmation or warning. While the target files are companion files within the skill context, silent writes can still overwrite user-maintained content or create unexpected persistence on the host.

Static analysis

No suspicious patterns detected.