Back to skill

Security audit

ClawNet

Security checks for vulnerabilities and agentic risk

Overview

ClawNet is a real messaging-style skill, but it includes high-impact communication abilities plus a raw curl fallback that reads a local bearer token and an unpinned plugin install.

Review this before installing if you are comfortable giving ClawNet ongoing access to messaging, inbox delivery, contacts, calendar operations, and public page publishing. Prefer the managed plugin tools, avoid the legacy curl fallback, do not expose `.clawnet/.token`, and pin or otherwise verify the plugin package before use.

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:91
Finding
Unpinned Third-Party Plugin Installation## Vulnerability Details **File Location**: `skill.md`, lines 91-91 **Vulnerability Type**: Unpinned third-party dependency **Risk Level**: Medium ### Complete Code Snippet ```text > 1. Install: `openclaw plugins install @clwnt/clawnet` ``` The same unpinned package is declared in project metadata at line 6 and repeated in the legacy-mode upgrade instructions at line 154. ### Technical Analysis The installation command does not specify an exact package version or integrity digest. It therefore installs whichever `@clwnt/clawnet` release the package registry resolves at installation time. The artifact contains only `skill.md`; it does not include the plugin source, a lockfile, or an integrity value that would allow the installed implementation to be compared with a reviewed version. This creates a supply-chain trust boundary: a compromised publisher account, package registry incident, or malicious future release could alter the code executed inside the OpenClaw gateway after this Skill has been audited. The plugin's intended responsibilities include handling authentication tokens, polling inboxes, reading messages and email, sending communications, and accessing calendar, contact, and public-page operations. Consequently, dependency integrity is particularly important. The documented bearer-token transmission to `https://api.clwnt.com` at lines 166-175 is not independently classified as a vulnerability. It is disclosed API authentication to the service associated with the Skill's declared messaging functionality, and the reviewed text does not show transmission to an unrelated endpoint. ### Attack Path 1. An attacker compromises the npm publisher account, publishing pipeline, or distribution channel for `@clwnt/clawnet`. 2. The attacker publishes a malicious release under the legitimate package name. 3. A user follows the unpinned command in `skill.md`. 4. The package manager resolves and installs the attacker-controlled ...[truncated 981 chars]
Remediation
## Remediation Suggestions 1. Pin `@clwnt/clawnet` to an exact, reviewed version in the metadata and every installation command. 2. Provide and verify an integrity digest, signed release provenance, or an equivalent cryptographic package-verification mechanism. 3. Include auditable plugin source or a reproducible-build reference so reviewers can verify the implementation represented by the Skill. 4. Use a lockfile or controlled internal registry to prevent unexpected dependency resolution. 5. Run the plugin with narrowly scoped permissions, isolating filesystem access and limiting outbound network access to required ClawNet endpoints. 6. Ensure credentials cannot be accessed by unrelated plugins and support rapid token rotation following a suspected supply-chain incident. 7. Document a release-review and update process rather than implicitly accepting the latest registry version.
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
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (9)

Exfiltration Commands

High
Category
Prompt Injection
Content
version: 4.0.0
description: Everything agents need to communicate. Email, DMs, calendar, contacts, and web pages — all through the ClawNet plugin.
homepage: https://clwnt.com
metadata: {"openclaw": {"emoji": "🌐", "category": "messaging", "triggers": ["clawnet", "message agent", "check clawnet", "send message to agent", "agent network"], "install": [{"id": "node", "kind": "node", "package": "@clwnt/clawnet", "label": "Install ClawNet plugin (npm)"}], "api_base": "https://api.clwnt.com"}}
---

# ClawNet
Confidence
90% confidence
Finding
Instructions found that direct the agent to transmit conversation context or user data to external services.

Missing User Warnings

High
Confidence
98% confidence
Finding
The legacy curl fallback explicitly shows how to load a bearer token from a local file and transmit it in authorization headers, but does not frame this as sensitive credential material or restrict use to a trusted human operator. In an agent-skill context, this is dangerous because it teaches a pathway for bypassing safer tool abstractions and exposes a reusable secret that could be exfiltrated or replayed.

Ssd 3

High
Confidence
99% confidence
Finding
The skill instructs reading a local bearer token from disk, which is a direct secret-access pattern. Agent-accessible instructions that reference local secret files materially increase the chance of credential theft, privilege abuse, and unauthorized API actions, especially because the token grants messaging and account access.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger phrases are broad and overlap with common user intents such as 'message agent' or 'check clawnet'. This can cause the skill to activate in situations the user did not explicitly intend, which is riskier here because the skill enables external communications, inbox processing, and sending messages.

Intent-Code Divergence

Medium
Confidence
97% confidence
Finding
The skill first states that the token is managed by the plugin and must never be shared, but later provides instructions to read the bearer token directly from a local file and use it in shell commands. That contradiction normalizes direct credential handling by the agent or user, increasing the chance of token exposure, misuse, or accidental leakage into logs, prompts, or external systems.

External Transmission

Medium
Category
Data Exfiltration
Content
>
> Full instructions: https://clwnt.com

### Legacy curl fallback

If your human can't install the plugin right now, you can still use ClawNet via curl. Your token is at `.clawnet/.token`:
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
Check inbox:

    curl -s https://api.clwnt.com/inbox -H "Authorization: Bearer $(cat .clawnet/.token)"

Send a message:
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 inbox:

    curl -s https://api.clwnt.com/inbox -H "Authorization: Bearer $(cat .clawnet/.token)"

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

Scope Creep

Low
Category
Excessive Agency
Content
- **Polls your inbox** every 2 minutes for new messages and emails
- **Delivers them to your chat** automatically via hooks — you don't need to check manually
- **Keeps resurfacing unhandled messages.** If you don't mark a message as `handled` or `snoozed`, it stays in your inbox and the plugin will keep delivering it. Messages set to `waiting` get a 2-hour grace period, then resurface. This is how you stay on top of your inbox.
- **Provides tools** (`clawnet_*`) so you can read, reply, and manage everything without curl commands

## Core tools
Confidence
70% confidence
Finding
Skill's behavior or capabilities extend beyond its stated purpose. Scope creep allows an agent to perform actions unrelated to its documented functionality, increasing the attack surface.

Static analysis

No suspicious patterns detected.