openclaw-guardian-suite
A legitimate commercial skill suite with disclosed encrypted remote-code-execution architecture. No malicious behavior found—credential harvesting, data exfiltration, obfuscation, or hidden sensitive-path access are all absent. The encrypted `oc_execute_skill()` pipeline is the primary risk vector (server could theoretically inject payload) but is explicitly documented in SKILL.md and install.sh, representing a known commercial pattern rather than covert malware.
Why this conclusion was reached
0/4 dimensions flaggedDeclared resources and inferred behavior are broadly aligned.
13 lower-risk artifacts were extracted and still need context.
There is no explicit malicious chain in the report.
Dependencies are present but no obvious high-risk issue stands out.
What drove the risk score up
oc_execute_skill() fetches encrypted skill content from skill.socialmore.net and pipes decrypted output directly to bash. If the server is compromised, arbitrary code could be injected. This pattern is explicitly disclosed in SKILL.md and install.sh, making it a commercial risk rather than covert malware.
Python scripts call subprocess.run() for curl, openclaw CLI, and backup scripts. These are necessary for config validation, health checks, and rollback operations—fully documented in SKILL.md and proportionate to the skill's purpose.
config-modification and gateway-auto-rollback write to ~/.openclaw/ JSON configs and backup files. These operations are the core functionality of the skill and are clearly declared in SKILL.md.
watermark.py injects '# [OC-WM] licensed-to: identifier | bundle: vendor-suite' comments into installed .py files. This is a license-tracking mechanism, not malicious—clearly labeled and only modifies files within the skill's own directory.
Most important evidence
Encrypted remote code execution via external server
The oc_execute_skill() function in auth.sh fetches encrypted skill content from skill.socialmore.net, decrypts it in memory using openssl AES-256-CBC, and pipes the output directly to bash. This means the actual executed code is never visible locally and depends entirely on the server's integrity. While explicitly disclosed in SKILL.md and install.sh, this is a non-standard trust model for AI agent skills.
lib/sdk/auth.sh:150 API keys stored in routes.json without encryption at rest
The compaction-proxy install.sh collects API keys for LLM providers and writes them to ~/.openclaw/compaction-proxy/routes.json with 600 permissions. While the installer does chmod 600, the keys are stored in plaintext on disk.
lib/skills/compaction-proxy/install.sh:245 Individual skill SKILL.md files are minimal or placeholder content
Six of the seven skills (model-failover-doctor, config-preflight-validator, gateway-auto-rollback, openclaw-health-audit, compaction-proxy) have SKILL.md files containing only purchase/activation instructions with no detailed behavior documentation. The actual implementation details exist only in the Python/JS source files. The main SKILL.md at root also lacks detailed permission declarations.
lib/skills/model-failover-doctor/SKILL.md:1 launchd plist registration for compaction-proxy
The compaction-proxy install.sh creates a macOS launchd plist at ~/Library/LaunchAgents/ai.openclaw.compaction-proxy.plist that runs on boot and auto-restarts on crash. This is standard persistence for a local proxy service, documented in the installer, but users should be aware the proxy will auto-start.
lib/skills/compaction-proxy/install.sh:252 Declared capability vs actual capability
config_modification_v2.py:line 55, gateway-auto-rollback.py:line 45, model_failover_doctor.py:line 63 auth.sh:line 57, auth.sh:line 80, config-preflight-validator.py:line 27 config_modification_v2.py:line 60 (subprocess for backup), health_monitor.py:line 31 (openclaw CLI), model_failover_doctor.py:line 71 (subprocess for restart) health_monitor.py:line 19 (PATH constants), compaction-proxy/index.js:line 28 (UPSTREAM env vars) No clipboard access found in any script auth.sh opens payment URL in browser but only when user explicitly consents (read -p prompt), which is standard payment UX No database access found Suspicious artifacts and egress
https://skill.socialmore.net SKILL.md:32
https://llmapi.lovbrowser.com lib/patch_integration.sh:57
http://127.0.0.1:11434 lib/skills/compaction-proxy/install.sh:39
https://nodejs.org lib/skills/compaction-proxy/install.sh:101
https://ollama.com/download lib/skills/compaction-proxy/install.sh:123
http://www.apple.com/DTDs/PropertyList-1.0.dtd lib/skills/compaction-proxy/install.sh:266
https://api.kimi.com/coding lib/skills/compaction-proxy/src/index.js:27
https://api.kimi.com/coding/ lib/skills/compaction-proxy/src/index.js:396
http://127.0.0.1:18789/health lib/skills/config-modification/quad_check.py:364
https://clawhub.openclaw.cc/skills/openclaw-guardian-suite lib/skills/config-preflight-validator/SKILL.md:13
http://127.0.0.1:18789/api/health lib/skills/gateway-auto-rollback/gateway-auto-rollback.py:80
https://clawhub.ai/halfmoon82/openclaw-health-audit lib/skills/openclaw-health-audit/clawhub.yaml:25
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| python3 | 3.9+ | system | No | Required for all Python scripts |
| curl | any | system | No | Used for health checks and license verification only |
| openssl | any | system | No | Used for encrypted skill decryption (aes-256-cbc, pbkdf2, 10000 iterations) |
| node | 22+ | system | No | Required for compaction-proxy only |
| ollama | any | external | No | Local summarization engine for compaction-proxy (localhost only, not a supply chain risk) |
File composition
lib/skills/compaction-proxy/src/index.js lib/skills/compaction-proxy/install.sh lib/skills/config-modification/quad_check.py lib/sdk/auth.sh lib/skills/gateway-auto-rollback/gateway-auto-rollback.py