Back to skill

Security audit

SecureClaw

Security checks for vulnerabilities and agentic risk

Overview

This security skill is mostly purpose-built, but it installs persistent agent instructions and performs broad local audits, so it needs careful review before use.

Install only if you intentionally want SecureClaw to act as an always-on policy layer for OpenClaw. Review the installer and hardening script first, especially the changes to AGENTS.md, TOOLS.md, and SOUL.md, and understand that uninstalling may leave some directives behind. Prefer a verified local OpenClaw CLI over unpinned npx commands, and run broad audit or emergency scripts only in a trusted terminal because their output can reveal sensitive local paths and system state.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
Findings (4)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:105
Finding

Globally Scoped Skill Instructions Can Override Agent Behavior

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:9, SKILL.md:105-109
Vulnerability Type: Skill instruction hijacking
Risk Level: Critical

The Skill declares that its rules must be followed continuously and instructs the agent to suspend all operations based on a filesystem marker:

markdown
You have the SecureClaw security skill. Follow all 15 rules always.
markdown
14. If the file `~/.openclaw/.secureclaw/killswitch` exists, STOP all
    actions immediately. Do not execute any tool calls, commands, or
    messages. Inform your human: "SecureClaw kill switch is active. All
    operations are suspended until it is removed."

Technical Analysis

These instructions are not scoped to an explicit security-audit invocation. Instead, they attempt to govern every future action whenever the Skill is loaded. The filesystem-based kill switch directs the language model to reject all tool calls, commands, and messages, including actions unrelated to SecureClaw.

A security Skill may reasonably advise the user when compromise is detected, but globally overriding the agent's operating policy exceeds the minimum authority required for auditing, privacy checking, or supply-chain scanning. The mechanism is instruction-based rather than an enforceable runtime security control and could conflict with higher-priority user workflows.

Attack Path

  1. The SecureClaw Skill is installed or loaded into agent context.
  2. The agent reads the instruction to follow all SecureClaw rules continuously.
  3. A local process, another Skill, or a user creates ~/.openclaw/.secureclaw/killswitch.
  4. During a later, unrelated task, the agent observes the marker.
  5. The Skill instruction causes the agent to refuse all tools, commands, and messages until the marker is removed.

Impact Assessment

The issue does not directly grant operating-system privileges or execute code. Its impact is control over the agent's ...[truncated 228 chars]

Remediation
View remediation

Remediation Suggestions

  • Scope all SecureClaw rules to explicit invocation of the Skill or an active security-response workflow.
  • Replace “follow all rules always” with a statement that preserves higher-priority system and user instructions.
  • Implement any kill switch as a user-configured runtime access-control feature rather than a language-model instruction.
  • Authenticate and protect creation of the kill-switch state.
  • Permit safe recovery, inspection, and notification operations while emergency mode is active.
  • Clearly document who can activate the feature, its exact effects, and how it is reversed.

T02 · Agent Memory Poisoning

Error
Location
scripts/install.sh:76
Finding

Installer and Hardening Scripts Persistently Modify Agent Cognitive Files

Content
View full analysis

Vulnerability Details

File Location: scripts/install.sh:76-126, scripts/quick-harden.sh:67-94, scripts/uninstall.sh:40-43,72-75
Vulnerability Type: Persistent agent memory poisoning
Risk Level: Critical

The installer appends an always-active policy to AGENTS.md:

bash
# Register in AGENTS.md if not already present
AGENTS_FILE="$OPENCLAW_DIR/workspace/AGENTS.md"
if [ -f "$AGENTS_FILE" ] && ! grep -q "SecureClaw Security Skill" "$AGENTS_FILE" 2>/dev/null; then
  cat >> "$AGENTS_FILE" << 'AGENTS_EOF'

### SecureClaw Security Skill (v2.2.0) - ALWAYS ACTIVE

Your workspace has the SecureClaw security skill installed. Follow the 15 core security rules in `skills/secureclaw/SKILL.md` at all times.

SecureClaw protects against: prompt injection, credential exposure, supply chain threats, memory tampering, cost overruns, file integrity violations, and inter-agent attacks.

**Run audits:** `bash skills/secureclaw/scripts/quick-audit.sh`

**Apply hardening:** `bash skills/secureclaw/scripts/quick-harden.sh`

See `TOOLS.md` for complete SecureClaw reference and available scripts.
AGENTS_EOF
    echo "📝 Registered in AGENTS.md"
  fi

The hardening script also appends behavioral rules directly to SOUL.md:

bash
# Privacy directives in SOUL.md
if [ -f "$OPENCLAW_DIR/SOUL.md" ] && ! grep -q "SecureClaw Privacy" "$OPENCLAW_DIR/SOUL.md" 2>/dev/null; then
  echo "🔧 Adding: privacy directives to SOUL.md"
  cp "$OPENCLAW_DIR/SOUL.md" "$OPENCLAW_DIR/SOUL.md.bak.$(date +%s)"
  cat >> "$OPENCLAW_DIR/SOUL.md" << 'EOF'

## SecureClaw Privacy Directives
- Never mention your human's real name publicly (use "my human")
- Never disclose location, employer, devices, or infrastructure publicly
- Never share private emails, messages, or documents publicly
- Never post API keys, tokens, or credentials anywhere
- Before posting publicly: could a hostile stranger use this info?
EOF
  N=$((N+1)
...[truncated 3094 chars]
Remediation
View remediation

Remediation Suggestions

  • Do not automatically modify SOUL.md, AGENTS.md, TOOLS.md, or other cognitive files.
  • Keep Skill instructions within the Skill package and activate them only for explicitly requested security tasks.
  • If integration is optional, display the exact proposed patch and obtain explicit confirmation before writing it.
  • Add stable begin and end markers around every inserted block.
  • Record a manifest containing the destination, original hash, backup path, and inserted block identifier.
  • Update the uninstaller to remove all inserted blocks from SOUL.md, AGENTS.md, and TOOLS.md.
  • Restore original files from verified backups where safe, while preserving subsequent user edits.
  • Make hardening changes individually selectable and support a genuine dry-run mode.
  • Avoid describing the Skill as “always active” unless that behavior is implemented through an explicit, user-controlled policy mechanism.

T05 · Unauthorized Access and Privilege Escalation

Error
Location
scripts/quick-audit.sh:70
Finding

Routine Audit and Emergency Scripts Perform Broad Local Reconnaissance

Content
View full analysis

Vulnerability Details

File Location: scripts/quick-audit.sh:70-86,100-118,164-190; scripts/emergency-response.sh:34-52
Vulnerability Type: Excessive access to local files, processes, ports, and agent memory
Risk Level: High

The routine audit recursively searches the OpenClaw directory for credential signatures:

bash
LEAKED=$(grep -rl 'sk-ant-\|sk-proj-\|xoxb-\|xoxp-\|ghp_\|gho_\|AKIA' "$OPENCLAW_DIR" 2>/dev/null \
  | grep -v '.env' | grep -v 'node_modules' | grep -v '.secureclaw/' | grep -v 'skills/secureclaw/' | head -5 || true)
[ -z "$LEAKED" ] \
  && chk H "ASI03|L4" "Plaintext key exposure" PASS \
  || chk H "ASI03|L4|privacy" "Plaintext key exposure" FAIL "Keys outside .env: $LEAKED"

It also reads persistent memory files for injection indicators:

bash
STATE_DIR="$OPENCLAW_DIR"
for mf in SOUL.md IDENTITY.md TOOLS.md AGENTS.md; do
  if [ -f "$STATE_DIR/$mf" ]; then
    if grep -qiE "(ignore previous|new instructions|system prompt override|you are now|disregard|forget your rules)" "$STATE_DIR/$mf" 2>/dev/null; then
      chk C "ATLAS|L2|poisoning" "$mf memory trust" FAIL "Possible injected instructions detected — review immediately"
    else
      chk M "ATLAS|L2" "$mf memory trust" PASS
    fi
  fi
done

The emergency script enumerates recent files, network listeners, and system processes:

bash
# 2. Check for suspicious recent file changes
echo "── Files modified in last 30 minutes ──"
find "$OPENCLAW_DIR" -maxdepth 2 -mmin -30 -type f 2>/dev/null | grep -v node_modules | grep -v '.git' || echo "   None found"
echo ""

# 3. Check for exposed ports
echo "── Open ports check ──"
if command -v lsof >/dev/null 2>&1; then
  lsof -i -P -n 2>/dev/null | grep -i 'openclaw\|moltbot\|clawdbot\|node.*LISTEN\|18789\|18790' || echo "   No OpenClaw ports detected"
elif command -v ss >/dev/null 2>&1; then
  ss -tlnp 2>/dev/null | grep -E '18789|18790' || echo " 
...[truncated 2155 chars]
Remediation
View remediation

Remediation Suggestions

  • Separate low-impact daily checks from invasive emergency diagnostics.
  • Require explicit user approval before inspecting process tables, sockets, agent memory, or broad directory trees.
  • Restrict recursive searches to documented allowlisted directories and file types.
  • Exclude logs, backups, session transcripts, version-control metadata, and unrelated workspace content by default.
  • Redact paths in normal output or show only paths relative to a user-approved root.
  • Never print matching credential values, environment-variable contents, or full process command lines.
  • Provide flags for each diagnostic category, such as --scan-memory, --scan-processes, and --scan-network.
  • Write sensitive diagnostic output only to a user-approved file with mode 0600, or keep results ephemeral.
  • Document exactly which local resources each mode reads.

T08 · Insecure Dependencies

Error
Location
SKILL.md:122
Finding

Security-Critical Workflows Recommend Unpinned npx Package Execution

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:122-124, README.md:53,69, scripts/emergency-response.sh:78-80
Vulnerability Type: Unpinned third-party package execution
Risk Level: High

The Skill recommends running security commands through npx without an exact version or integrity constraint:

markdown
If the SecureClaw plugin is installed, prefer plugin commands:
- `npx openclaw secureclaw audit` instead of quick-audit.sh
- `npx openclaw secureclaw harden` instead of quick-harden.sh
- `npx openclaw secureclaw emergency` instead of emergency-response.sh

The emergency-response script repeats the recommendation:

bash
echo "  For automated incident response, install the full plugin:"
echo "    npx openclaw plugins install secureclaw"
echo "    npx openclaw secureclaw audit"

Technical Analysis

npx may resolve and execute a package from a configured package registry when the package is not already installed locally. The command does not specify an exact openclaw version, package integrity hash, registry, or verified local binary path.

Consequently, the effective code executed by these documented workflows can change after the Skill has been reviewed. The repository's checksums.json covers files shipped in this project but does not authenticate packages fetched by npx, and the installer does not enforce those checksums.

No evidence was found that the currently referenced openclaw package is malicious. The vulnerability is the unsafe and mutable dependency-execution method.

Attack Path

  1. A user follows the audit, hardening, update, uninstall, or emergency-response documentation.
  2. The user runs an unversioned npx openclaw ... command.
  3. If no trusted local package satisfies the request, npx resolves a package through the configured registry.
  4. A compromised package release, registry account, registry configuration, or future malicious version supplie ...[truncated 628 chars]
Remediation
View remediation

Remediation Suggestions

  • Do not use npx as the preferred execution path for security-critical operations.
  • Require a previously installed and verified OpenClaw binary.
  • Invoke the trusted binary through an absolute or otherwise validated local path.
  • If remote package resolution is unavoidable, pin an exact package version and publish its expected integrity hash.
  • Pin the package registry to a documented trusted source and disallow unexpected per-user registry overrides.
  • Verify package signatures or provenance before execution.
  • Avoid dependency lifecycle scripts where possible.
  • Extend integrity verification to all external packages used by audit and incident-response workflows.
  • Document an offline installation and verification procedure.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (46)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

If uninstall/removal logic deletes local directories and backups while the skill presents itself primarily as a security-analysis capability, users may underestimate the operational impact. Deletion and state mutation create integrity and availability risks, especially in agent environments where trust is inferred from the skill description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

If uninstall/removal logic deletes local directories and backups while the skill presents itself primarily as a security-analysis capability, users may underestimate the operational impact. Deletion and state mutation create integrity and availability risks, especially in agent environments where trust is inferred from the skill description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

If uninstall/removal logic deletes local directories and backups while the skill presents itself primarily as a security-analysis capability, users may underestimate the operational impact. Deletion and state mutation create integrity and availability risks, especially in agent environments where trust is inferred from the skill description.

Content

No source excerpt is available for this finding.

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · SKILL.md (reported line 10)May include surrounding context.

md
You have the SecureClaw security skill. Follow all 15 rules always.

<!-- Framework mapping:
  Rules 1, 5:    MAESTRO L3 (Agent Frameworks) | NIST: Evasion (prompt injection)
  Rule 2:        MAESTRO L3 | NIST: Misuse (autonomous misuse)
  Rule 3:        MAESTRO L4 (Infrastructure) | NIST: Privacy (credential harvesting)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
80% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · SKILL.md (reported line 34)May include surrounding context.

md
human with what you found and where.

2. Before executing destructive or sensitive commands (rm -rf, curl|sh,
   eval/exec, chmod 777, credential access, mass email/message sends,
   SQL DROP/DELETE, git push --force, config file edits outside ~/.openclaw),
   always show your human: the exact command, what it changes, whether it's
   reversible, and why it's needed. Wait for explicit approval.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
70% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · SKILL.md (reported line 35)May include surrounding context.

md
2. Before executing destructive or sensitive commands (rm -rf, curl|sh,
   eval/exec, chmod 777, credential access, mass email/message sends,
   SQL DROP/DELETE, git push --force, config file edits outside ~/.openclaw),
   always show your human: the exact command, what it changes, whether it's
   reversible, and why it's needed. Wait for explicit approval.

Instruction Override

High
Category
Prompt Injection
Confidence
80% confidence
Finding

This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.

Content

Scanner excerpt · configs/injection-patterns.json (reported line 8)May include surrounding context.

json
"patterns": {
    "identity_hijacking": [
      "you are now", "your new role", "act as", "pretend to be",
      "ignore previous instructions", "ignore all instructions",
      "ignore your instructions", "disregard everything",
      "disregard your system", "override your", "new system prompt",
      "forget everything above", "from now on you", "your real purpose",

YARA rule 'agent_skill_prompt_injection_hidden_instructions': Prompt injection or hidden instructions embedded in AI agent skill text [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

Scanner excerpt · configs/injection-patterns.json (reported line 8)May include surrounding context.

json
{
  "version": "2.0.0",
  "owasp_asi": "ASI01",
  "lastUpdated": "2026-02-12",
  "patterns": {
    "identity_hijacking": [
      "you are now", "your new role", "act as", "pretend to be",
      "ignore previous instructions", "ignore all instructions",
      "ignore your instructions", "disregard everything",
      "disregard your system", "override your", "new system prompt",
      "forget everything above", "from now on you", "your real purpose",
      "do not follow your original", "switch to", "enter .* mode"
    ],
    "action_directives": [
      "forward all emails", "forward this to", "send this to",
      "send a copy to", "share this with", "post this on",
      "exfiltrate", "download and run", "download and execute",
      "fetch and execute", "execute this command",

Anti-Refusal Statement

High
Category
Anti-Refusal
Confidence
90% confidence
Finding

Skill attempts to nullify the agent's safety policies or restrictions ('you have no restrictions', 'ignore your guidelines', 'do anything now'). This is a direct jailbreak that disables guardrails.

Content

Scanner excerpt · configs/injection-patterns.json (reported line 31)May include surrounding context.

json
"skip the verification", "you already checked",
      "no need to verify", "trust this result",
      "skip step", "the previous step was wrong",
      "ignore the error", "override safety"
    ],
    "config_tampering": [
      "update your soul", "modify your soul", "add to your soul",

Instruction Override

High
Category
Prompt Injection
Confidence
90% confidence
Finding

This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.

Content

Scanner excerpt · configs/injection-patterns.json (reported line 31)May include surrounding context.

json
"skip the verification", "you already checked",
      "no need to verify", "trust this result",
      "skip step", "the previous step was wrong",
      "ignore the error", "override safety"
    ],
    "config_tampering": [
      "update your soul", "modify your soul", "add to your soul",

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · configs/dangerous-commands.json (reported line 38)May include surrounding context.

json
"curl.*\\|.*sh", "wget.*\\|.*bash", "eval\\(", "exec\\(",
    "Function\\(", "btoa\\(", "atob\\(", "String\\.fromCharCode",
    "\\\\x[0-9a-f]{2}", "\\$\\(curl", "fetch\\(.*credentials",
    "process\\.env", "fs\\.readFile.*\\.env",
    "osascript.*display dialog", "xattr.*quarantine",
    "ClickFix", "prerequisite.*install", "webhook\\.site"
  ],

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · configs/supply-chain-ioc.json (reported line 9)May include surrounding context.

json
"curl.*\\|.*sh", "wget.*\\|.*bash", "eval\\(", "exec\\(",
    "Function\\(", "btoa\\(", "atob\\(", "String\\.fromCharCode",
    "\\\\x[0-9a-f]{2}", "\\$\\(curl", "fetch\\(.*credentials",
    "process\\.env", "fs\\.readFile.*\\.env",
    "osascript.*display dialog", "xattr.*quarantine",
    "ClickFix", "prerequisite.*install", "webhook\\.site"
  ],

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · configs/supply-chain-ioc.json (reported line 25)May include surrounding context.

json
"curl.*\\|.*sh", "wget.*\\|.*bash", "eval\\(", "exec\\(",
    "Function\\(", "btoa\\(", "atob\\(", "String\\.fromCharCode",
    "\\\\x[0-9a-f]{2}", "\\$\\(curl", "fetch\\(.*credentials",
    "process\\.env", "fs\\.readFile.*\\.env",
    "osascript.*display dialog", "xattr.*quarantine",
    "ClickFix", "prerequisite.*install", "webhook\\.site"
  ],

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · configs/supply-chain-ioc.json (reported line 26)May include surrounding context.

json
"curl.*\\|.*sh", "wget.*\\|.*bash", "eval\\(", "exec\\(",
    "Function\\(", "btoa\\(", "atob\\(", "String\\.fromCharCode",
    "\\\\x[0-9a-f]{2}", "\\$\\(curl", "fetch\\(.*credentials",
    "process\\.env", "fs\\.readFile.*\\.env",
    "osascript.*display dialog", "xattr.*quarantine",
    "ClickFix", "prerequisite.*install", "webhook\\.site"
  ],

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · configs/supply-chain-ioc.json (reported line 27)May include surrounding context.

json
"curl.*\\|.*sh", "wget.*\\|.*bash", "eval\\(", "exec\\(",
    "Function\\(", "btoa\\(", "atob\\(", "String\\.fromCharCode",
    "\\\\x[0-9a-f]{2}", "\\$\\(curl", "fetch\\(.*credentials",
    "process\\.env", "fs\\.readFile.*\\.env",
    "osascript.*display dialog", "xattr.*quarantine",
    "ClickFix", "prerequisite.*install", "webhook\\.site"
  ],

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · scripts/quick-audit.sh (reported line 70)May include surrounding context.

sh
"curl.*\\|.*sh", "wget.*\\|.*bash", "eval\\(", "exec\\(",
    "Function\\(", "btoa\\(", "atob\\(", "String\\.fromCharCode",
    "\\\\x[0-9a-f]{2}", "\\$\\(curl", "fetch\\(.*credentials",
    "process\\.env", "fs\\.readFile.*\\.env",
    "osascript.*display dialog", "xattr.*quarantine",
    "ClickFix", "prerequisite.*install", "webhook\\.site"
  ],

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · scripts/quick-audit.sh (reported line 71)May include surrounding context.

sh
"curl.*\\|.*sh", "wget.*\\|.*bash", "eval\\(", "exec\\(",
    "Function\\(", "btoa\\(", "atob\\(", "String\\.fromCharCode",
    "\\\\x[0-9a-f]{2}", "\\$\\(curl", "fetch\\(.*credentials",
    "process\\.env", "fs\\.readFile.*\\.env",
    "osascript.*display dialog", "xattr.*quarantine",
    "ClickFix", "prerequisite.*install", "webhook\\.site"
  ],

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · scripts/quick-harden.sh (reported line 46)May include surrounding context.

sh
"curl.*\\|.*sh", "wget.*\\|.*bash", "eval\\(", "exec\\(",
    "Function\\(", "btoa\\(", "atob\\(", "String\\.fromCharCode",
    "\\\\x[0-9a-f]{2}", "\\$\\(curl", "fetch\\(.*credentials",
    "process\\.env", "fs\\.readFile.*\\.env",
    "osascript.*display dialog", "xattr.*quarantine",
    "ClickFix", "prerequisite.*install", "webhook\\.site"
  ],

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · scripts/quick-harden.sh (reported line 47)May include surrounding context.

sh
"curl.*\\|.*sh", "wget.*\\|.*bash", "eval\\(", "exec\\(",
    "Function\\(", "btoa\\(", "atob\\(", "String\\.fromCharCode",
    "\\\\x[0-9a-f]{2}", "\\$\\(curl", "fetch\\(.*credentials",
    "process\\.env", "fs\\.readFile.*\\.env",
    "osascript.*display dialog", "xattr.*quarantine",
    "ClickFix", "prerequisite.*install", "webhook\\.site"
  ],

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · scripts/quick-harden.sh (reported line 50)May include surrounding context.

sh
"curl.*\\|.*sh", "wget.*\\|.*bash", "eval\\(", "exec\\(",
    "Function\\(", "btoa\\(", "atob\\(", "String\\.fromCharCode",
    "\\\\x[0-9a-f]{2}", "\\$\\(curl", "fetch\\(.*credentials",
    "process\\.env", "fs\\.readFile.*\\.env",
    "osascript.*display dialog", "xattr.*quarantine",
    "ClickFix", "prerequisite.*install", "webhook\\.site"
  ],

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · scripts/check-integrity.sh (reported line 27)May include surrounding context.

sh
CREATED=$((CREATED + 1))
      else
        echo "⚠️  Failed to hash $f — skipping"
        rm -f "$BASELINE_DIR/$f.sha256"
      fi
    fi
  done

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · scripts/install.sh (reported line 65)May include surrounding context.

sh
else
    # Remove old secureclaw-advisor if it exists
    if [ -d "$OPENCLAW_DIR/workspace/skills/secureclaw-advisor" ]; then
      rm -rf "$OPENCLAW_DIR/workspace/skills/secureclaw-advisor"
      echo "🗑  Removed old secureclaw-advisor from workspace"
    fi
    mkdir -p "$WORKSPACE_SKILLS"

Credential Access

High
Category
Privilege Escalation
Confidence
84% confidence
Finding

The script recursively greps the entire OpenClaw directory for strings resembling API keys and then includes matching file paths in output. While intended as a defensive audit, this broad scan can touch sensitive locations and may reveal the presence and paths of credential-bearing files to anyone who can run or read the audit output, which increases secret discovery risk.

Content

Scanner excerpt · scripts/quick-audit.sh (reported line 83)May include surrounding context.

sh
|| chk H "ASI03|L4|privacy" "Directory permissions" FAIL "Permissions $DP (need 700)"

LEAKED=$(grep -rl 'sk-ant-\|sk-proj-\|xoxb-\|xoxp-\|ghp_\|gho_\|AKIA' "$OPENCLAW_DIR" 2>/dev/null \
  | grep -v '.env' | grep -v 'node_modules' | grep -v '.secureclaw/' | grep -v 'skills/secureclaw/' | head -5 || true)
[ -z "$LEAKED" ] \
  && chk H "ASI03|L4" "Plaintext key exposure" PASS \
  || chk H "ASI03|L4|privacy" "Plaintext key exposure" FAIL "Keys outside .env: $LEAKED"

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · scripts/quick-audit.sh (reported line 160)May include surrounding context.

sh
if [ -f "$OPENCLAW_DIR/.secureclaw/killswitch" ]; then
  echo ""
  echo "🔴 KILL SWITCH ACTIVE — all agent operations should be suspended [MAESTRO:L5]"
  echo "   Remove: rm $OPENCLAW_DIR/.secureclaw/killswitch"
  echo ""
fi

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · scripts/quick-audit.sh (reported line 73)May include surrounding context.

sh
chmod 700 "$OPENCLAW_DIR"; N=$((N+1))
fi

# .env permissions
if [ -f "$OPENCLAW_DIR/.env" ]; then
  EP=$(stat -f '%Lp' "$OPENCLAW_DIR/.env" 2>/dev/null || stat -c '%a' "$OPENCLAW_DIR/.env" 2>/dev/null || echo "?")
  if [ "$EP" != "600" ] && [ "$EP" != "400" ] && [ "$EP" != "?" ]; then

Static analysis

Detected: suspicious.dynamic_code_execution

Dynamic code execution detected.

Critical
Code
suspicious.dynamic_code_execution
Location
scripts/quick-audit.sh:107

Dynamic code execution detected.

Critical
Code
suspicious.dynamic_code_execution
Location
scripts/scan-skills.sh:31