ClawHavoc - how malicious skills reached OpenClaw agents
341 of 2,857 audited ClawHub skills were malicious. What they did and how to check yours.
Plain Markdown for agents: /articles/clawhavoc-skill-malware.md
Facts
- Koi audited 2,857 ClawHub skills. 341 were malicious. 335 of those installed the AMOS macOS stealer.
- Snyk ToxicSkills scanned 3,984 skills. 13.4% had a critical issue. 36.8% had some flaw.
- Unit 42 found 5 malicious skills that passed both VirusTotal and ClawScan.
How the attack works
- The skill looks useful and has a normal README.
- The README lists a "prerequisite". It is a shell one-liner or a download.
- The agent runs it, because the skill told it to.
- The payload steals browser data, keychains and API keys.
The skill never needs to contain malware. The instructions are the malware.
Check what you have installed
npx -y securemyagent checkup
The Checkup hashes each installed skill and looks it up in the Verdict Registry. Unknown skills are queued for scanning.
Find skills with install-style commands yourself:
grep -rEn "curl[^|]*\|[ ]*(ba)?sh|wget[^|]*\|[ ]*(ba)?sh|base64 (-d|--decode)|chmod \+x" ~/.openclaw 2>/dev/null | head -50
Adjust the path to where your runtime keeps skills.
Fix
sma remove-skill <skill-id>
Then:
- Rotate every key the agent could read: API keys, GitHub tokens, cloud credentials.
- Move secrets out of plaintext with
sma fix --vault. - Re-run
npx -y securemyagent checkup.
Rules for new skills
- Read the whole skill before install. Search for
curl,wget,sudo,base64. - Never run a "prerequisite" command from a skill README without a human reading it.
- A clean VirusTotal result is not a clean verdict. Unit 42 showed scanners miss instruction-based malware.
- Check before install:
sma check <skill>.
Related: fix installed components.