Back to skill

Security audit

Browser Healthcheck

Security checks for vulnerabilities and agentic risk

Overview

This browser troubleshooting skill is mostly purpose-aligned, but its repair path can force-kill a local process without verifying that it is the intended OpenClaw browser process.

Install only if you are comfortable with a troubleshooting helper that may run local diagnostics and, when invoked with `--fix`, force-kill a process using a PID from the CDP port check. Prefer using the isolated `openclaw` profile and confirm the target process is really OpenClaw-managed before accepting any kill or repair action.

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
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill instructs the operator to force-kill a process by PID without any guardrails to verify ownership of the process, confirm the browser is not part of the user's active session, or warn about data loss and disruption. In this context, the document explicitly discusses conflicts with the user's own Chrome profile, so an indiscriminate kill action could terminate the user's browser session, destroy unsaved work, or interrupt unrelated activity.

subprocess module call

Medium
Category
Dangerous Code Execution
Content
"""查找占用指定端口的 Chrome 进程"""
    try:
        # Windows: netstat -ano | findstr "9223"
        result = subprocess.run(
            ['netstat', '-ano'],
            capture_output=True,
            text=True,
Confidence
70% confidence
Finding
subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The auto-fix path performs a destructive force-kill without an explicit warning or confirmation at the point of action. In a diagnostic tool, this increases the chance of accidental service interruption, termination of unrelated software using the same port, and possible unsaved-state loss.

subprocess module call

Medium
Category
Dangerous Code Execution
Content
if fix:
                print(f"Attempting to kill process {pid}...")
                try:
                    subprocess.run(['taskkill', '/F', '/PID', str(pid)], 
                                 check=True, capture_output=True)
                    print_ok(f"Process {pid} killed")
                    time.sleep(2)
Confidence
85% confidence
Finding
When `--fix` is supplied, the script forcefully terminates whatever process is listening on the target port using `taskkill /F /PID`. Although the PID is derived from local `netstat` output rather than direct user input, this can still kill an unintended or attacker-induced process bound to that port, causing denial of service or data loss.

Natural-Language Policy Violations

Low
Confidence
78% confidence
Finding
The user-facing docstring and many status descriptions are written in Chinese, while the script does not indicate that language output is configurable or optional. This may conflict with a language/locale policy requiring user choice rather than forcing a specific language by default.

Static analysis

No suspicious patterns detected.