Back to skill

Security audit

OpenClaw Problem Solver自动修复小龙虾

Security checks across malware telemetry and agentic risk

Overview

This appears to be a real OpenClaw troubleshooting skill, but it needs Review because it can perform repairs, run a background watchdog, persist on login, kill processes, archive session files, read credentials/logs, and send diagnostic details externally.

Install only if you intentionally want an OpenClaw repair/watchdog tool with local system access. Treat the watchdog, auto-repair, session archiving, Feishu/WebChat alerts, Gateway HTTP endpoint, and --install autostart as separate opt-in decisions. Review and redact diagnostic output before external notifications, avoid broad 'auto repair' invocations, and keep a rollback/uninstall path for the watchdog and registry autostart.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (54)

subprocess module call

Medium
Category
Dangerous Code Execution
Content
def _gateway_status() -> dict:
    """快速获取 Gateway 状态。"""
    try:
        r = subprocess.run(
            [_OPENCLAW_CMD, "gateway", "status", "--json"],
            capture_output=True, text=True, timeout=12, shell=True,
        )
Confidence
94% confidence
Finding
r = subprocess.run( [_OPENCLAW_CMD, "gateway", "status", "--json"], capture_output=True, text=True, timeout=12, shell=True, )

subprocess module call

Medium
Category
Dangerous Code Execution
Content
for cmd in self.commands:
            try:
                logger.info("执行修复: %s -> %s", self.issue, cmd[:80])
                result = subprocess.run(
                    ["powershell", "-Command", cmd],
                    capture_output=True, text=True, timeout=60,
                )
Confidence
95% confidence
Finding
result = subprocess.run( ["powershell", "-Command", cmd], capture_output=True, text=True, timeout=60, )

subprocess module call

Medium
Category
Dangerous Code Execution
Content
"""Fallback when openclaw doctor hangs: use gateway status instead."""
    items = []
    try:
        r = subprocess.run(
            ["openclaw", "gateway", "status", "--json"],
            capture_output=True, text=True, timeout=15, shell=True,
        )
Confidence
95% confidence
Finding
r = subprocess.run( ["openclaw", "gateway", "status", "--json"], capture_output=True, text=True, timeout=15, shell=True, )

subprocess module call

Medium
Category
Dangerous Code Execution
Content
reg = r"HKCU:\Software\Microsoft\Windows\CurrentVersion\Run"
    cmd = ['powershell', '-Command',
           f'Set-ItemProperty -Path "{reg}" -Name "OpenClawWatchdog" -Value \'{py} {script}\'']
    subprocess.run(cmd, check=True)
    logger.info("开机自启已安装")

def uninstall_autostart():
Confidence
96% confidence
Finding
subprocess.run(cmd, check=True)

subprocess module call

Medium
Category
Dangerous Code Execution
Content
cmd = parts[1].lower() if len(parts) > 1 else ''
                        if pid != current_pid and '--status' in cmd:
                            logger.warning(f"清理残留 watchdog PID {pid} (wmic)")
                            subprocess.run(['taskkill', '/F', '/PID', str(pid)],
                                         capture_output=True, timeout=5)
                    except (ValueError, subprocess.TimeoutExpired):
                        pass
Confidence
93% confidence
Finding
subprocess.run(['taskkill', '/F', '/PID', str(pid)], capture_output=True, timeout=5)

Lp3

Medium
Category
MCP Least Privilege
Confidence
96% confidence
Finding
The skill advertises substantial capabilities including environment access, file read/write, network use, and shell execution, but does not declare permissions. This creates a transparency and control failure: users or the host system may treat it as a simple troubleshooting skill while it can actually modify the system, access sensitive data, and communicate externally.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding
The documented behavior materially exceeds the stated purpose of troubleshooting by adding persistence, external notifications, process control, and autonomous repair actions. That mismatch is dangerous because operators may approve or invoke the skill under a narrower trust model than its real behavior warrants.

Context-Inappropriate Capability

High
Confidence
99% confidence
Finding
A persistent background daemon with autostart, registry persistence, and out-of-band messaging is a major expansion from a user-invoked diagnostic helper into continuously executing software. This increases attack surface, enables stealthy long-lived behavior, and can operate outside the user's immediate awareness or approval.

Intent-Code Divergence

Medium
Confidence
94% confidence
Finding
The document promises privacy-first handling and redaction, then later instructs sending detailed error context and full stack traces through messaging channels. This contradiction makes accidental disclosure of secrets, internal paths, tokens, and user data more likely because implementers cannot follow both directives safely.

Intent-Code Divergence

High
Confidence
98% confidence
Finding
The workflow claims strict user confirmation before system-modifying actions, but the auto-repair section authorizes some actions to run automatically. This inconsistency is dangerous because it defeats the user's safety expectations and can lead to unapproved system changes, restarts, or destructive side effects.

Description-Behavior Mismatch

Medium
Confidence
89% confidence
Finding
The module claims a strict search hierarchy of official docs to GitHub issues, but then silently adds a broader general web/community fallback. This creates a trust-boundary expansion: the agent may rely on less authoritative and potentially adversarial external content while presenting the workflow as controlled and evidence-based.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
The module sends error-derived content to broad retrieval sources via memory recall and web search even though the feature is framed as local diagnostic summarization. Exec output often contains file paths, hostnames, tokens, stack traces, or internal configuration details, so expanding it to external retrieval increases the chance of unintended data disclosure and prompt-injection-style contamination from retrieved content.

Intent-Code Divergence

Medium
Confidence
88% confidence
Finding
The documentation labels the step as safe dry-run testing, but the example invokes exec normally and provides no actual dry-run control. In an autofix skill, operators may rely on that wording and run commands believing they are non-mutating, which can lead to unintended system changes during testing or troubleshooting.

Context-Inappropriate Capability

Medium
Confidence
91% confidence
Finding
The planned additions to read USER.md/IDENTITY.md and perform memory retrieval expand the skill from OpenClaw issue diagnosis into collecting and using user profile and historical context data. That broadens access to potentially sensitive information without a clear necessity or scope boundary, increasing privacy, prompt-injection, and overreach risks in a troubleshooting skill.

Description-Behavior Mismatch

Low
Confidence
89% confidence
Finding
The documentation instructs the system to automatically persist diagnostic reports across sessions for archival and knowledge sharing, which can retain command output, environment details, and error text that may contain secrets or sensitive operational data. In the context of an autofix/troubleshooting skill that processes logs and shell output, this increases the chance of unintended retention and later exposure of sensitive information.

Context-Inappropriate Capability

Medium
Confidence
93% confidence
Finding
The session backlog repair plan goes beyond service repair and moves user session .jsonl files into an archive directory. This affects potentially sensitive user data and changes filesystem state unrelated to restoring core service availability, which is riskier in an autonomous repair skill.

Context-Inappropriate Capability

Medium
Confidence
98% confidence
Finding
The file includes explicit install/remove autostart functionality for Windows Run keys. Persistence is sensitive behavior because it allows the skill to continue executing after reboot without renewed consent, which is not strictly necessary for a repair/diagnostic helper and makes the skill context more dangerous.

Context-Inappropriate Capability

Medium
Confidence
97% confidence
Finding
The watchdog proactively scans for and kills other watchdog-related processes, including with forceful taskkill. That is beyond passive monitoring and can interfere with other sessions or tools, making this a genuine process-control risk in the context of an agent skill.

Vague Triggers

Medium
Confidence
92% confidence
Finding
The suggested agent phrases include very broad commands like 'auto repair' and 'check what's wrong with Gateway', which could trigger the skill unintentionally or in the wrong context. Because this skill appears capable of diagnosis, repair, and watchdog deployment, accidental invocation could cause system changes, service restarts, or other operational actions without deliberate user intent.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The installation guide instructs users to enable a Gateway HTTP endpoint and later offers hidden background execution and HKCU\Run persistence, but does not prominently warn about the security implications of exposing a network-accessible interface or installing an auto-starting daemon. In a diagnostic/repair skill with monitoring and notification features, this increases the risk of unintended exposure, persistence, and expanded attack surface on the host.

Vague Triggers

Medium
Confidence
89% confidence
Finding
The README includes very broad natural-language trigger phrases such as 'check what's wrong with Gateway' and 'auto repair' that could cause an agent to invoke the skill in contexts the user did not intend. Because this skill can perform repair actions, restart services, archive sessions, and launch monitoring components, accidental activation can lead to unintended system changes rather than being a harmless documentation issue.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The README advertises automatic repairs, background monitoring, process killing, auto-start registration, and outbound messaging, but it does not prominently warn users that these actions modify system state, create persistence, and may send data externally. In an agent skill context, missing consent boundaries is dangerous because users may treat the skill as diagnostic-only while it actually performs repairs and notifications with side effects.

Vague Triggers

Medium
Confidence
89% confidence
Finding
The documented trigger phrases are extremely broad natural-language requests such as asking to check what is wrong or to auto repair, which are likely to overlap with ordinary user conversation. In an agent skill context, this can cause unintended invocation of a high-impact skill that performs diagnostics, process termination, repair actions, or monitoring setup without sufficiently explicit user intent.

Missing User Warnings

High
Confidence
94% confidence
Finding
The README advertises high-impact behaviors including automatic repair, archive operations, process killing, watchdog background execution, and startup persistence, but it does not pair them with clear warnings about operational risk, consent, rollback, or data loss. In this context, accidental or uninformed use could disrupt running services, destroy session state, or install persistent behavior on a user's system.

Missing User Warnings

High
Confidence
96% confidence
Finding
The documentation states that Feishu notifications send detailed error information immediately, but it does not warn users that diagnostics may contain sensitive configuration values, paths, runtime context, or user data leaving the local machine. This creates a real data-exfiltration risk because users may enable external notifications without understanding the scope of transmitted content.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

Detected: suspicious.dynamic_code_execution

Dynamic code execution detected.

Critical
Code
suspicious.dynamic_code_execution
Location
scripts/watchdog_monitor.py:73