Back to skill

Security audit

Claw Wiki

Security checks for vulnerabilities and agentic risk

Overview

This is a scoped OpenClaw documentation reference skill with explicit refresh behavior and no hidden execution or data theft found.

Before installing, be comfortable with a skill that reads bundled OpenClaw docs and, only when asked, can update its local docs by cloning the OpenClaw repository and rewriting its own docs snapshot. Review any installer commands it quotes before running them, especially curl-or-PowerShell commands piped directly into an interpreter.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (3)

T03 · Remote Payload Retrieval and Execution

Error
Location
openclaw_docs/install/installer.md:25
Finding
Documentation Recommends Direct Execution of Mutable Remote Installer Scripts<![CDATA[ ## Vulnerability Details **File Location**: `openclaw_docs/install/installer.md:25-45` **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: High Equivalent patterns also appear in `openclaw_docs/start/getting-started.md`, `openclaw_docs/help/faq.md`, localized documentation, and several platform installation guides. ### Vulnerable Code Snippet ```markdown ## Quick commands <Tabs> <Tab title="install.sh"> ```bash curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash ``` ```bash curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --help ``` </Tab> <Tab title="install-cli.sh"> ```bash curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash ``` ```bash curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --help ``` </Tab> <Tab title="install.ps1"> ```powershell iwr -useb https://openclaw.ai/install.ps1 | iex ``` ``` ### Technical Analysis The documented commands pass a network response directly to Bash or PowerShell. The response is neither pinned to an immutable release nor verified using a cryptographic digest or signature before execution. The use of TLS options protects the connection in transit but does not establish that the returned script is an approved, immutable build. A compromise of the domain, CDN, DNS configuration, hosting account, or installer publication pipeline could change the effective payload after this Skill has been reviewed. The Skill safety contract says documentation examples must not be executed automatically. Consequently, this is not automatic code execution by the Skill itself. Nevertheless, installation guidance is part of the content the Skill is intended to provide to users, and users may execute the returned command as instructed. ### Attack Path 1. An attacker compromises the installer host, deployment p ...[truncated 1020 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Replace pipe-to-interpreter instructions with a staged installation process: ```bash curl -fL --proto '=https' --tlsv1.2 \ -o openclaw-install.sh \ https://openclaw.ai/releases/<version>/install.sh ``` 2. Publish a SHA-256 digest and, preferably, a signature for each immutable installer release. 3. Require users to verify the downloaded file before execution: ```bash echo "<approved-sha256> openclaw-install.sh" | sha256sum --check - ``` 4. Direct users to inspect the downloaded script and then execute it as a separate operation: ```bash less openclaw-install.sh bash openclaw-install.sh ``` 5. Pin documentation examples to versioned release URLs rather than mutable generic endpoints. 6. Apply the same change to PowerShell examples and all translated or duplicated installation pages. 7. Preserve the existing Skill prohibition against automatically executing commands copied from documentation. ]]>

T08 · Insecure Dependencies

Warning
Location
scripts/sync_docs.py:14
Finding
Documentation Refresh Trusts Mutable Upstream Git References Without Integrity Verification<![CDATA[ ## Vulnerability Details **File Location**: `scripts/sync_docs.py:14-20, 55-58` **Vulnerability Type**: Unpinned and insufficiently verified upstream content **Risk Level**: Medium The recommended mutable-ref invocation appears in `references/update-workflow.md:20-26`. The current provenance record in `state/source-lock.json` shows that the snapshot was obtained in tracking mode from `main`. ### Vulnerable Code Snippet ```python UPSTREAM_REPO_URL = "https://github.com/openclaw/openclaw" UPSTREAM_REPO_ALIASES = { UPSTREAM_REPO_URL, "https://github.com/openclaw/openclaw.git", "git@github.com:openclaw/openclaw.git", } ALLOWED_SUBDIR = "docs" REF_RE = re.compile(r"^(main|[0-9a-fA-F]{7,40}|[A-Za-z0-9._/-]{1,128})$") ``` ```python def run_git_clone(repo_url: str, ref: str, destination: Path) -> Path: cmd = ["git", "clone", "--depth", "1", "--branch", ref, repo_url, str(destination)] subprocess.run(cmd, check=True) return destination ``` The documented refresh command is: ```bash python scripts/sync_docs.py \ --repo-url https://github.com/openclaw/openclaw \ --ref main \ --mode tracking ``` ### Technical Analysis The repository URL is appropriately allowlisted, and the Git command uses an argument array rather than an injectable shell string. However, the recommended workflow clones the mutable `main` branch. The accepted reference pattern also permits arbitrary branch and tag names. The resolved commit is recorded only after the content has been obtained. It is not compared against an approved full commit hash, trusted release manifest, or verified signed tag. Therefore, the recorded commit provides provenance information but does not provide authenticity or approval. Because refreshed Markdown becomes the Skill’s trusted answer corpus, a compromised upstream repository can introduce dangerous commands, misleading security guidance, or adversarial instructions. The Skill does not execute scripts contained in the docu ...[truncated 1285 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Require remote refreshes to use a full 40-character commit SHA rather than a mutable branch name. 2. Resolve branch or tag names separately, display the resulting commit, and require explicit approval before activation. 3. Maintain an allowlist of approved commits or release manifests. 4. Verify signed tags or commits against trusted OpenClaw maintainer keys. 5. Compare the checked-out `HEAD` with the requested immutable commit and abort on any mismatch. 6. Generate and review the documentation diff before making the new snapshot active. 7. Treat refreshed documents as untrusted reference material in Agent instructions, explicitly prohibiting instructions inside documentation from overriding the Skill safety contract. 8. Retain `main` tracking only as an opt-in development mode with a clear warning that its contents are mutable. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/sync_docs.py:151
Finding
Refresh Workflow Activates New Documentation Before Validation and Does Not Roll Back on Failure<![CDATA[ ## Vulnerability Details **File Location**: `scripts/sync_docs.py:151-160` **Vulnerability Type**: Non-transactional destructive update and missing rollback **Risk Level**: Medium The behavior conflicts with `references/update-workflow.md:31-33`, which states that the old snapshot should be retained if validation fails. ### Vulnerable Code Snippet ```python live_docs = ensure_within_skill_root(docs_root()) backup_docs = ensure_within_skill_root(root / "openclaw_docs.previous") live_docs_json = ensure_within_skill_root(root_docs_json()) if backup_docs.exists(): shutil.rmtree(backup_docs) if live_docs.exists(): shutil.move(str(live_docs), str(backup_docs)) shutil.move(str(staged_docs), str(live_docs)) shutil.copy2(source_docs_json, live_docs_json) source_lock = { "repo_url": args.repo_url or UPSTREAM_REPO_URL, "source_type": source_type, "source_path": str(Path(args.source_path).resolve()) if args.source_path else None, "tracked_ref": args.ref, "resolved_commit": detect_commit(repo_root), "docs_subdir": args.subdir, "synced_at": datetime.now(timezone.utc).isoformat(), "mode": args.mode, "keep_assets": bool(args.keep_assets), "previous_manifest_present": previous_manifest.exists(), } dump_json(state / "source-lock.json", source_lock) ``` The documented sequence performs validation only after replacement: ```bash python scripts/sync_docs.py --repo-url https://github.com/openclaw/openclaw --ref main --mode tracking python scripts/validate_docs.py python scripts/build_knowledge.py python scripts/diff_docs.py ``` ### Technical Analysis The synchronization script first removes any prior backup, moves the current live documentation to a backup directory, and installs staged content as the new live snapshot. It then replaces the root `docs.json` independently. Validation is a separate command executed only after this destructive activation. If validation fails, neither `sync_docs.py` nor `validate_docs.p ...[truncated 1431 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Run all validation against the staged directory before changing the live snapshot. 2. Extend validation functions to accept explicit staged paths rather than implicitly reading only the active paths. 3. Stage `openclaw_docs`, `docs.json`, generated manifests, and source metadata as one release unit. 4. Perform an atomic directory rename only after every validation and integrity check succeeds. 5. Wrap activation in exception handling that restores both the previous documentation directory and the previous `docs.json`. 6. Keep versioned backups until the new snapshot has passed validation and index generation. 7. Write `source-lock.json` only after successful activation. 8. If any post-activation step fails, automatically restore the complete previous snapshot and report the failure. 9. Add tests covering malformed `docs.json`, missing required directories, interrupted copies, failed index generation, and rollback behavior. ]]>
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (1374)

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding
The declared description presents a skill for referencing OpenClaw documentation, checking whether local docs are outdated, and updating the knowledge base from upstream docs. The supplied code does not do those things. It is a local utility script that loads docs.json, traverses the configured page structure, reads local Markdown files, removes YAML frontmatter, formats headings, and writes merged Markdown files. There is no retrieval from upstream documentation, no version or freshness verification, no interactive reference/query functionality, and no broader product-operation logic. While merging docs could be a supporting step for building a local knowledge base, the actual code chunk’s primary purpose is document aggregation/export, not the fuller declared behavior.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
The declared purpose describes a documentation-oriented skill: referencing a local OpenClaw docs snapshot, verifying whether docs are outdated, and refreshing knowledge from upstream sources. The supplied code does none of that. It does not read documentation files, query versions, fetch upstream content, or expose any documentation lookup behavior. Instead, it is purely a browser-side script that creates and updates an underline element for active navigation tabs by observing DOM/class changes and window resize events. This is a materially different primary purpose and an unrelated capability, so the description does not accurately represent the code.

Self-Modification

High
Category
Rogue Agent
Content
---
name: claw-wiki
description: Reference and refresh a local OpenClaw documentation snapshot for product usage, deployment, configuration, CLI commands, channels, gateway behavior, tools, troubleshooting, and docs-version verification. Use when users ask how OpenClaw works, how to configure or operate it, where a feature is documented, whether the local docs are outdated, or to update this skill's OpenClaw knowledge base from upstream docs.
metadata:
  short-description: Reference and refresh OpenClaw docs
---
Confidence
85% confidence
Finding
Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.

Ae1

High
Category
analysis-evasion
Content
- `./state/source-lock.json`: current snapshot source, ref, commit, and sync metadata
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
- `./state/source-lock.json`: current snapshot source, ref, commit, and sync metadata
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
- `./state/source-lock.json`: current snapshot source, ref, commit, and sync metadata
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
- `./state/source-lock.json`: current snapshot source, ref, commit, and sync metadata
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
- `./state/docs-manifest.json`: generated manifest of the local docs snapshot
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
- `./state/topic-index.json`: generated keyword-to-path topic index
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
- `./state/latest-diff.md`: latest update diff summary
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
- `./state/latest-diff.md`: latest update diff summary
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
- `./references/routing-cheatsheet.md`: intent-to-path quick router for broad questions
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
- `./references/routing-cheatsheet.md`: intent-to-path quick router for broad questions
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
- `./references/query-examples.md`: ready-to-use search query patterns by user intent
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
- `./references/query-examples.md`: ready-to-use search query patterns by user intent
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
- `./references/update-workflow.md`: refresh workflow for syncing and validating the local snapshot
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
- `./references/update-workflow.md`: refresh workflow for syncing and validating the local snapshot
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
- `python scripts/sync_docs.py ...`
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
- `python scripts/validate_docs.py`
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
- `python scripts/build_knowledge.py`
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
- `python scripts/diff_docs.py`
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

External Script Fetching

High
Category
Supply Chain
Content
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1370" height="581.04"><rect width="1370" height="581.04" rx="5" ry="5" class="a"/><svg y="0%" x="0%"><circle cx="20" cy="20" r="6" fill="#ff5f58"/><circle cx="40" cy="20" r="6" fill="#ffbd2e"/><circle cx="60" cy="20" r="6" fill="#18c132"/></svg><svg height="521.04" viewBox="0 0 133 52.104" width="1330" x="15" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="50"><style>@keyframes C{0%{transform:translateX(0)}.01%{transform:translateX(-133px)}1.53%{transform:translateX(-266px)}5.39%{transform:translateX(-399px)}6.71%{transform:translateX(-532px)}6.73%{transform:translateX(-798px)}6.76%{transform:translateX(-931px)}6.79%{transform:translateX(-1064px)}6.81%{transform:translateX(-1197px)}6.82%{transform:translateX(-1330px)}6.9%{transform:translateX(-1596px)}6.92%{transform:translateX(-1729px)}7%{transform:translateX(-1862px)}7.01%{transform:translateX(-1995px)}7.08%{transform:translateX(-2128px)}7.1%{transform:translateX(-2261px)}7.12%{transform:translateX(-2394px)}7.13%{transform:translateX(-2527px)}7.15%{transform:translateX(-2660px)}7.17%{transform:translateX(-3192px)}7.18%{transform:translateX(-3458px)}7.2%{transform:translateX(-3857px)}7.82%{transform:translateX(-3990px)}7.85%{transform:translateX(-4123px)}7.89%{transform:translateX(-4256px)}8.09%{transform:translateX(-4389px)}8.29%{transform:translateX(-4522px)}8.48%{transform:translateX(-4655px)}8.68%{transform:translateX(-4788px)}8.88%{transform:translateX(-4921px)}9.08%{transform:translateX(-5054px)}9.28%{transform:translateX(-5187px)}9.48%{transform:translateX(-5320px)}9.68%{transform:translateX(-5453px)}9.87%{transform:translateX(-5586px)}10.07%{transform:translateX(-5719px)}10.27%{transform:translateX(-5852px)}10.47%{transform:translateX(-5985px)}10.67%{transform:translateX(-6118px)}10.87%{transform:translateX(-6251px)}11.07%{transform:translateX(-6384px)}11.26%{transform:translateX(-6517p
...[truncated 28 chars]
Confidence
90% confidence
Finding
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

External Script Fetching

High
Category
Supply Chain
Content
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1370" height="581.04"><rect width="1370" height="581.04" rx="5" ry="5" class="a"/><svg y="0%" x="0%"><circle cx="20" cy="20" r="6" fill="#ff5f58"/><circle cx="40" cy="20" r="6" fill="#ffbd2e"/><circle cx="60" cy="20" r="6" fill="#18c132"/></svg><svg height="521.04" viewBox="0 0 133 52.104" width="1330" x="15" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="50"><style>@keyframes C{0%{transform:translateX(0)}.01%{transform:translateX(-133px)}1.53%{transform:translateX(-266px)}5.39%{transform:translateX(-399px)}6.71%{transform:translateX(-532px)}6.73%{transform:translateX(-798px)}6.76%{transform:translateX(-931px)}6.79%{transform:translateX(-1064px)}6.81%{transform:translateX(-1197px)}6.82%{transform:translateX(-1330px)}6.9%{transform:translateX(-1596px)}6.92%{transform:translateX(-1729px)}7%{transform:translateX(-1862px)}7.01%{transform:translateX(-1995px)}7.08%{transform:translateX(-2128px)}7.1%{transform:translateX(-2261px)}7.12%{transform:translateX(-2394px)}7.13%{transform:translateX(-2527px)}7.15%{transform:translateX(-2660px)}7.17%{transform:translateX(-3192px)}7.18%{transform:translateX(-3458px)}7.2%{transform:translateX(-3857px)}7.82%{transform:translateX(-3990px)}7.85%{transform:translateX(-4123px)}7.89%{transform:translateX(-4256px)}8.09%{transform:translateX(-4389px)}8.29%{transform:translateX(-4522px)}8.48%{transform:translateX(-4655px)}8.68%{transform:translateX(-4788px)}8.88%{transform:translateX(-4921px)}9.08%{transform:translateX(-5054px)}9.28%{transform:translateX(-5187px)}9.48%{transform:translateX(-5320px)}9.68%{transform:translateX(-5453px)}9.87%{transform:translateX(-5586px)}10.07%{transform:translateX(-5719px)}10.27%{transform:translateX(-5852px)}10.47%{transform:translateX(-5985px)}10.67%{transform:translateX(-6118px)}10.87%{transform:translateX(-6251px)}11.07%{transform:translateX(-6384px)}11.26%{transform:translateX(-6517p
...[truncated 28 chars]
Confidence
90% confidence
Finding
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

External Script Fetching

High
Category
Supply Chain
Content
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1370" height="581.04"><rect width="1370" height="581.04" rx="5" ry="5" class="a"/><svg y="0%" x="0%"><circle cx="20" cy="20" r="6" fill="#ff5f58"/><circle cx="40" cy="20" r="6" fill="#ffbd2e"/><circle cx="60" cy="20" r="6" fill="#18c132"/></svg><svg height="521.04" viewBox="0 0 133 52.104" width="1330" x="15" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="50"><style>@keyframes C{0%{transform:translateX(0)}.01%{transform:translateX(-133px)}1.53%{transform:translateX(-266px)}5.39%{transform:translateX(-399px)}6.71%{transform:translateX(-532px)}6.73%{transform:translateX(-798px)}6.76%{transform:translateX(-931px)}6.79%{transform:translateX(-1064px)}6.81%{transform:translateX(-1197px)}6.82%{transform:translateX(-1330px)}6.9%{transform:translateX(-1596px)}6.92%{transform:translateX(-1729px)}7%{transform:translateX(-1862px)}7.01%{transform:translateX(-1995px)}7.08%{transform:translateX(-2128px)}7.1%{transform:translateX(-2261px)}7.12%{transform:translateX(-2394px)}7.13%{transform:translateX(-2527px)}7.15%{transform:translateX(-2660px)}7.17%{transform:translateX(-3192px)}7.18%{transform:translateX(-3458px)}7.2%{transform:translateX(-3857px)}7.82%{transform:translateX(-3990px)}7.85%{transform:translateX(-4123px)}7.89%{transform:translateX(-4256px)}8.09%{transform:translateX(-4389px)}8.29%{transform:translateX(-4522px)}8.48%{transform:translateX(-4655px)}8.68%{transform:translateX(-4788px)}8.88%{transform:translateX(-4921px)}9.08%{transform:translateX(-5054px)}9.28%{transform:translateX(-5187px)}9.48%{transform:translateX(-5320px)}9.68%{transform:translateX(-5453px)}9.87%{transform:translateX(-5586px)}10.07%{transform:translateX(-5719px)}10.27%{transform:translateX(-5852px)}10.47%{transform:translateX(-5985px)}10.67%{transform:translateX(-6118px)}10.87%{transform:translateX(-6251px)}11.07%{transform:translateX(-6384px)}11.26%{transform:translateX(-6517p
...[truncated 28 chars]
Confidence
90% confidence
Finding
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

External Script Fetching

High
Category
Supply Chain
Content
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1370" height="581.04"><rect width="1370" height="581.04" rx="5" ry="5" class="a"/><svg y="0%" x="0%"><circle cx="20" cy="20" r="6" fill="#ff5f58"/><circle cx="40" cy="20" r="6" fill="#ffbd2e"/><circle cx="60" cy="20" r="6" fill="#18c132"/></svg><svg height="521.04" viewBox="0 0 133 52.104" width="1330" x="15" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="50"><style>@keyframes C{0%{transform:translateX(0)}.01%{transform:translateX(-133px)}1.53%{transform:translateX(-266px)}5.39%{transform:translateX(-399px)}6.71%{transform:translateX(-532px)}6.73%{transform:translateX(-798px)}6.76%{transform:translateX(-931px)}6.79%{transform:translateX(-1064px)}6.81%{transform:translateX(-1197px)}6.82%{transform:translateX(-1330px)}6.9%{transform:translateX(-1596px)}6.92%{transform:translateX(-1729px)}7%{transform:translateX(-1862px)}7.01%{transform:translateX(-1995px)}7.08%{transform:translateX(-2128px)}7.1%{transform:translateX(-2261px)}7.12%{transform:translateX(-2394px)}7.13%{transform:translateX(-2527px)}7.15%{transform:translateX(-2660px)}7.17%{transform:translateX(-3192px)}7.18%{transform:translateX(-3458px)}7.2%{transform:translateX(-3857px)}7.82%{transform:translateX(-3990px)}7.85%{transform:translateX(-4123px)}7.89%{transform:translateX(-4256px)}8.09%{transform:translateX(-4389px)}8.29%{transform:translateX(-4522px)}8.48%{transform:translateX(-4655px)}8.68%{transform:translateX(-4788px)}8.88%{transform:translateX(-4921px)}9.08%{transform:translateX(-5054px)}9.28%{transform:translateX(-5187px)}9.48%{transform:translateX(-5320px)}9.68%{transform:translateX(-5453px)}9.87%{transform:translateX(-5586px)}10.07%{transform:translateX(-5719px)}10.27%{transform:translateX(-5852px)}10.47%{transform:translateX(-5985px)}10.67%{transform:translateX(-6118px)}10.87%{transform:translateX(-6251px)}11.07%{transform:translateX(-6384px)}11.26%{transform:translateX(-6517p
...[truncated 28 chars]
Confidence
90% confidence
Finding
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Static analysis

Detected: suspicious.destructive_delete_command, suspicious.exposed_resource_identifier, suspicious.exposed_secret_literal (+2 more)

Documentation contains a destructive delete command without an explicit confirmation gate.

Warn
Code
suspicious.destructive_delete_command
Location
openclaw_docs/install/uninstall.md:56

Documentation contains a destructive delete command without an explicit confirmation gate.

Warn
Code
suspicious.destructive_delete_command
Location
openclaw_docs/zh-CN/install/uninstall.md:63

Plaintext HTTP endpoint targets a CGNAT/Tailscale-range address.

Critical
Code
suspicious.exposed_resource_identifier
Location
openclaw_docs/channels/googlechat.md:87

Plaintext HTTP endpoint targets a CGNAT/Tailscale-range address.

Critical
Code
suspicious.exposed_resource_identifier
Location
openclaw_docs/zh-CN/channels/googlechat.md:94

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/brave-search.md:27

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/design/kilo-gateway-integration.md:136

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/gateway/configuration-reference.md:1614

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/gateway/remote.md:114

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/gateway/secrets-plan-contract.md:79

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/help/faq.md:1503

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/nodes/talk.md:58

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/providers/cloudflare-ai-gateway.md:16

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/providers/litellm.md:120

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/providers/venice.md:55

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/tools/firecrawl.md:29

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/tools/web.md:228

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/tts.md:101

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/zh-CN/brave-search.md:34

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/zh-CN/gateway/configuration.md:1570

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/zh-CN/help/faq.md:1277

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/zh-CN/nodes/talk.md:65

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/zh-CN/providers/venice.md:62

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/zh-CN/tools/firecrawl.md:36

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/zh-CN/tools/web.md:159

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
openclaw_docs/zh-CN/tts.md:94

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
openclaw_docs/channels/googlechat.md:186

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
openclaw_docs/channels/group-messages.md:22

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
openclaw_docs/concepts/memory.md:70

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
openclaw_docs/date-time.md:65

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
openclaw_docs/gateway/configuration-reference.md:166

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
openclaw_docs/gateway/security/index.md:1118

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
openclaw_docs/zh-CN/channels/discord.md:309

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
openclaw_docs/zh-CN/channels/googlechat.md:187

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
openclaw_docs/zh-CN/concepts/memory.md:58

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
openclaw_docs/zh-CN/gateway/configuration.md:1052

Instructions pass high-value credentials through process argv.

Critical
Code
suspicious.secret_argv_exposure
Location
openclaw_docs/install/docker.md:493

Instructions pass high-value credentials through process argv.

Critical
Code
suspicious.secret_argv_exposure
Location
openclaw_docs/zh-CN/install/docker.md:271