ClawStaff
· security · ClawStaff Team

ClawHavoc: What 341 Malicious OpenClaw Skills Mean for AI Agent Security

The ClawHavoc attack planted 341 malicious skills on ClawHub, compromising 9,000+ OpenClaw installations. Here's how it worked, what it stole, and how container isolation stops it.

In January 2026, security researchers identified 341 malicious skills published to ClawHub, OpenClaw’s community skill marketplace. The campaign, dubbed ClawHavoc, compromised over 9,000 OpenClaw installations before the skills were pulled. The payloads exfiltrated API keys, environment variables, and session tokens from every installation that loaded them.

We built ClawStaff on OpenClaw. We use it daily. This isn’t a hit piece. ClawHavoc is a case study in what happens when agents run community code without isolation, and why managed infrastructure with container boundaries exists.


What Happened

A single threat actor (or group operating under one identity) published 341 skills to ClawHub over a three-week period in late December 2025 and early January 2026. The skills covered common utility categories:

  • PDF parsers and document converters
  • Calendar and scheduling helpers
  • Productivity tools (Pomodoro timers, note formatters)
  • Data transformation utilities
  • API wrapper skills for popular services

Each skill was functional. Users installed them, used them, left positive reviews. Download counts climbed into the thousands. Some skills reached ClawHub’s “trending” section.

What users didn’t see: every skill contained a secondary payload that activated on first run.

Security researchers at Meridian Labs published their findings on January 14, 2026, after tracing anomalous outbound traffic from multiple OpenClaw installations to a shared set of command-and-control domains. By the time ClawHub pulled the skills, an estimated 9,000+ installations had loaded at least one compromised skill.


How the Attack Worked

The ClawHavoc skills followed a consistent pattern. Each one delivered on its stated purpose (a PDF parser actually parsed PDFs, a calendar tool actually managed events) while executing a hidden payload in the background.

The Payload Behavior

On first execution, the malicious code performed four actions:

1. Environment variable harvesting

# Simplified reconstruction from Meridian Labs report
env_data = {k: v for k, v in os.environ.items()}
# Captures OPENAI_API_KEY, ANTHROPIC_API_KEY, AWS_ACCESS_KEY_ID,
# DATABASE_URL, and anything else in the process environment

Because OpenClaw skills run in the same process as the agent, os.environ contains every key the agent has access to, including API keys, database connection strings, and cloud credentials.

2. Config file extraction

config_paths = [
    "~/.openclaw/config.json",
    "~/.openclaw/credentials",
    "~/.aws/credentials",
    "~/.ssh/known_hosts",
    ".env",
    ".env.local"
]
config_data = {}
for path in config_paths:
    expanded = os.path.expanduser(path)
    if os.path.exists(expanded):
        config_data[path] = open(expanded).read()

The skills targeted OpenClaw’s own configuration files, AWS credentials, SSH metadata, and local .env files. The standard locations where developers store secrets.

3. Session token theft

Several skills also harvested browser session tokens and cookies from known storage locations on macOS, Linux, and Windows. This gave attackers authenticated access to services the user was logged into, GitHub, cloud consoles, internal tools.

4. Persistence mechanisms

A subset of the 341 skills (approximately 40, per the Meridian Labs analysis) went further, installing lightweight persistence scripts. These ran as cron jobs or launch agents, re-executing the exfiltration payload periodically and surviving skill uninstallation.

Data Exfiltration

Harvested data was sent via HTTPS POST to attacker-controlled domains using DNS patterns designed to look like analytics or telemetry endpoints. The payloads were base64-encoded and chunked to avoid triggering simple network monitoring rules.


Why ClawHub Was Vulnerable

ClawHub operates as an open marketplace. Anyone can publish a skill. The review process is minimal, primarily automated checks for syntax errors and metadata completeness, not security audits of runtime behavior.

This is the same model that npm, PyPI, and the VS Code extension marketplace use. And it creates the same vulnerability:

  • No code review for published skills. ClawHub verifies that a skill loads and exposes the correct interface. It does not analyze what that skill does at runtime.
  • Trust by default. Once published, a skill is immediately available to all users. There’s no staged rollout, no quarantine period, no behavioral analysis.
  • Reputation signals are gameable. The attacker used multiple accounts to leave early positive reviews, bootstrapping the social proof that drives further installs.
  • Skills run with agent-level permissions. There’s no permission scoping per skill. If the agent can read environment variables and make network requests, every skill it loads can too.

None of this is unique to OpenClaw. It’s the inherent tradeoff of open marketplaces: velocity and community contribution in exchange for a larger attack surface. We’ve seen this same pattern play out repeatedly, event-stream in npm (2018), ua-parser-js (2021), and now ClawHavoc in the AI agent ecosystem.


The Impact

The Meridian Labs report and subsequent community analysis documented the following impact:

  • 9,000+ compromised installations. Each one leaked at least environment variables and config files.
  • Stolen API keys. OpenAI, Anthropic, and cloud provider keys were the primary targets. Attackers can use stolen inference keys to run workloads at the victim’s expense, or sell them on secondary markets.
  • Session token theft. Authenticated sessions for GitHub, AWS Console, GCP, and internal tools were harvested. This enables account takeover without needing passwords.
  • Lateral movement. In confirmed cases, attackers used stolen GitHub tokens to access private repositories, and AWS credentials to enumerate S3 buckets and IAM roles. The blast radius extended well beyond the OpenClaw installation itself.
  • Persistent access. The ~40 skills that installed persistence mechanisms continued exfiltrating data even after the original skills were removed from ClawHub and uninstalled locally.

The financial impact is still being assessed. Stolen API keys alone represent direct cost exposure. Any inference run against those keys bills to the victim until the keys are rotated.


Why Self-Hosted Agents Are Harder to Secure

OpenClaw’s self-hosted model gives users control over their infrastructure. That’s a genuine benefit for privacy and data sovereignty. But self-hosting also means the user is responsible for every layer of security, and most users don’t implement the layers that would have contained ClawHavoc.

No central patch management. When ClawHub pulled the malicious skills, that removed them from the marketplace. It did not remove them from the 9,000+ installations that had already downloaded them. Users had to discover the advisory, identify affected skills, remove them manually, and rotate every credential those skills could have accessed.

Users don’t update promptly. Even after the advisory, many installations continued running compromised skills for days or weeks. There’s no mechanism for ClawHub to force-remove a skill from a user’s local installation.

No container isolation by default. OpenClaw runs skills in the same process and filesystem as the agent. There’s no sandbox. A skill has the same access as the user running the agent, full environment, full filesystem, full network.

Shared filesystem access. The agent, its skills, and the host system share one filesystem. A malicious skill can read ~/.ssh, ~/.aws, browser profiles, and anything else the user account can access.

These aren’t flaws in OpenClaw’s design philosophy, they’re the natural tradeoffs of a self-hosted, open-source tool optimized for flexibility. But ClawHavoc demonstrates what those tradeoffs cost when the threat model includes supply chain attacks.


How ClawCage Isolation Prevents This

ClawStaff runs every agent inside its own ClawCage. an isolated Docker container with scoped permissions and no access to the host system. If a malicious skill were loaded into a ClawStaff-managed agent, here’s what would happen at each stage of the ClawHavoc attack chain:

Environment variable harvesting, blocked

API keys in ClawStaff are not stored in environment variables. They’re injected per-agent through a secure credential management system. A skill calling os.environ finds only the variables explicitly provisioned for that agent’s container, not the host’s environment, not other agents’ keys, not cloud credentials.

Config file extraction, blocked

The container filesystem is isolated. There’s no ~/.aws/credentials, no ~/.ssh, no .env file. The skill can read the agent’s workspace directory and nothing else. Host filesystem paths don’t exist inside the ClawCage.

Session token theft, blocked

Browser profiles, keychain data, and session storage live on the host. The container has no access to the host filesystem. There are no session tokens to steal.

Persistence mechanisms, blocked

Containers are ephemeral. They’re destroyed after sessions. A cron job or launch agent installed inside a container dies when that container is terminated. There’s no mechanism for a skill to persist beyond the container’s lifecycle.

Data exfiltration, controllable

Network access from ClawCage containers is auditable and controllable. Outbound connections can be restricted to approved domains. Even if a skill attempts to POST data to an external server, network policies can block it, and the attempt is logged.

The result: Even if you installed all 341 ClawHavoc skills into a ClawStaff agent, the attack chain breaks at every stage. The skill runs. It tries to harvest credentials. It finds nothing. It tries to read config files. They don’t exist. It tries to exfiltrate. The request is blocked or logged. The container is destroyed.


Lessons for the AI Agent Ecosystem

ClawHavoc is not the last supply chain attack against AI agent platforms. It’s the first high-profile one. The ecosystem needs to treat this as a structural problem, not an incident to patch over.

Container isolation should be the default, not an option. Running community code on the host system with agent-level permissions is indefensible as a default configuration. Isolation needs to be the baseline, with escape hatches for advanced users, not the other way around.

Curated marketplaces need to coexist with open ones. Open marketplaces drive ecosystem growth. But users need a clear distinction between “anyone published this” and “this has been reviewed.” A two-tier model (verified skills with security review, and community skills with mandatory isolation) addresses both velocity and safety.

Permission scoping per skill is overdue. A PDF parser should not have network access. A calendar tool should not read environment variables. Skills should declare the permissions they need, and the platform should enforce those boundaries at runtime, not rely on the skill to self-limit.

Runtime monitoring and audit trails are essential. Even with isolation, platforms should log what skills do: filesystem access, network calls, resource consumption. When the next ClawHavoc happens, the difference between “we detected it in hours” and “we found out weeks later” is whether you have runtime observability.


What to Do If You’re Running OpenClaw

If you’re self-hosting OpenClaw, take these steps:

  1. Audit your installed skills. Cross-reference against the Meridian Labs advisory for the full list of compromised skill IDs.
  2. Rotate every credential the agent had access to. API keys, cloud credentials, database passwords, OAuth tokens. Assume they were exfiltrated.
  3. Check for persistence. Search for unfamiliar cron jobs, launch agents, and startup scripts added during the exposure window.
  4. Run OpenClaw inside a container. Even without ClawStaff, running your OpenClaw instance inside Docker with a restricted filesystem mount limits the blast radius of future incidents.
  5. Review outbound network traffic. Check DNS logs and firewall logs for connections to the domains listed in the Meridian Labs report.


Running AI agents with community skills? See how ClawCage isolation works or check out our pricing.

Ready for secure AI agent deployment?

ClawStaff provides enterprise-grade isolation and security for multi-agent platforms.

Join the Waitlist