Back to skill

Security audit

Windows Api Monitor

Security checks for vulnerabilities and agentic risk

Overview

This appears to be a legitimate Windows API-usage monitor, but it needs Review because it documents persistent scheduled execution and reads local OpenClaw logs without enough safeguards or data-handling disclosure.

Install only if you are comfortable letting the skill read local OpenClaw usage logs and write local reports/state. Avoid creating the scheduled task unless you review and harden it first: use least privilege, absolute executable paths, a fixed script path with controlled permissions, and a documented removal command.

Vulnerability Patterns
  • System PersistenceInstalls backdoors, hooks, services, or scheduled tasks that survive the run
  • 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
Findings (1)

T06 · System Persistence

Warning
Location
FIXES.md:89
Finding

Optional Scheduled Task Enables Persistent Recurring Execution Without Adequate Hardening

Content
View full analysis

Vulnerability Details

File Location: FIXES.md, lines 89-93
Vulnerability Type: Windows scheduled-task persistence
Risk Level: Medium

Vulnerable Code

powershell
### Cron定时任务
```powershell
# 添加到计划任务中,每天9:00执行
schtasks /create /tn "OpenClaw API检查" /tr "powershell -Command \"cd 'C:\Users\Administrator\.openclaw\workspace\skills\windows-api-monitor\scripts'; python auto_checker.py --simple --both\"" /sc DAILY /st 09:00

Technical Analysis

The documentation instructs the user to register a Windows scheduled task that survives the current Skill invocation and executes every day. Scheduled execution is relevant to the declared monitoring functionality, but it is not necessary for ordinary on-demand usage and therefore must be explicitly optional and hardened according to least-privilege principles.

The scheduled action has the following security weaknesses:

  • It uses a path under the Administrator profile, suggesting that the task may be installed or run from a privileged account.
  • It invokes both powershell and python without absolute, trusted executable paths. Their resolution therefore depends on the task's environment and executable search path.
  • It repeatedly executes auto_checker.py from a mutable workspace directory without checking its integrity, owner, or access-control list.
  • The PowerShell process is not constrained with options such as -NoProfile and -NonInteractive. Profile loading can introduce additional code into scheduled execution.
  • No removal command, task principal, privilege level, execution timeout, or post-installation verification is documented.

The project does not automatically execute this command, and the reviewed Python scripts do not independently install a scheduled task. Exploitation therefore requires the user to follow the optional documentation and create the task.

Attack Path

  1. A user follows FIXES.md and executes the supplied `s ...[truncated 1475 chars]
Remediation
View remediation

Remediation Suggestions

  1. Clearly label scheduled-task creation as an explicit, optional action requiring informed user consent. Do not create it during ordinary Skill execution.

  2. Run the task under a dedicated, non-administrative account with only read access to the required OpenClaw logs and write access to a dedicated report directory.

  3. Use absolute paths for PowerShell, Python, and the script, for example:

    • %SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe
    • A verified absolute path to python.exe
    • An absolute path to auto_checker.py
  4. Invoke PowerShell with -NoProfile -NonInteractive to prevent profile-based code loading and unintended interaction.

  5. Restrict the Skill directory's ACL so that untrusted users cannot modify the scheduled script or its parent directories.

  6. Verify script integrity before recurring execution, such as by using signed scripts or a securely stored expected hash.

  7. Explicitly configure the task principal, non-elevated run level, execution timeout, failure handling, and conditions through a reviewed task definition.

  8. Document task inspection and removal commands, such as:

    powershell
    schtasks /query /tn "OpenClaw API检查"
    schtasks /delete /tn "OpenClaw API检查" /f
    
  9. Prefer a user-controlled foreground monitoring process when continuous execution is not required.

Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (13)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The file is entirely written in Chinese and includes Chinese output labels such as '今日', '本周', and '使用建议', but it does not indicate that the skill is region-specific or that users may choose another language. This can violate language/locale policy when a skill implicitly forces a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The entire skill documentation, status labels, and examples are written in Chinese, and the output examples also assume Chinese-language responses. There is no indication that the user can choose another language or that the Chinese-only constraint is required for a region-specific purpose.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill advertises a cleanup command that deletes old log files but does not clearly warn users that running it removes files from disk. In an agent skill context, destructive operations should be explicitly labeled because users may invoke them assuming they are harmless maintenance actions, leading to accidental loss of audit/history data needed for troubleshooting or compliance.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill states that it collects usage data from session logs, cache files, Windows Event Logs, and CLI sources, but provides no privacy, consent, retention, or sensitive-data-handling notice. These sources may contain prompts, model identifiers, paths, tokens, or operational metadata, so undocumented aggregation increases the risk of over-collection, unintended disclosure, or misuse of monitoring data.

Content

No source excerpt is available for this finding.

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · _meta.json (reported line 44)May include surrounding context.

json
"issues": "https://github.com/openclaw/skills/issues",
  "support": {
    "email": "",
    "docs": "skills/windows-api-monitor/SKILL.md"
  }
}

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The UI configuration sets language: "zh-CN", and the surrounding file content is also Chinese-only, which indicates a fixed locale choice. Per policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is clearly documented and justified, which is not present here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This code file contains natural-language text that presents the tool as Windows-only and communicates its purpose entirely in Chinese. User-facing strings throughout the script also remain Chinese-only, which can violate a language/locale policy when no user opt-in or documented justification for the enforced language is provided.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

This code's natural-language interface is hardcoded in Chinese from the module docstring onward, and all CLI descriptions and status messages are likewise fixed to Chinese. Under the language/locale policy, forcing a specific language without user choice or documented regional justification is a policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The file's natural-language description and all user-facing messages are written exclusively in Chinese, with no indication that language is selectable or that the tool is intentionally region-specific. This creates a locale/language policy concern because the skill effectively imposes a specific language on users without opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The manifest presents the skill name/description and author metadata only in Chinese, indicating a language-specific experience without offering a user language choice. Under the policy, locale or language constraints should be opt-in or clearly justified as region-specific, which is not documented here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

This code file contains natural-language strings that assume a Chinese-speaking user, beginning with the module docstring and continuing throughout the CLI UX. Under the policy for natural-language violations, forcing a specific language without user opt-in can be a locale-policy issue when no alternative or justification is provided.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The module docstring is entirely in Chinese and states its purpose without indicating that language choice is optional or that the tool is intentionally limited to a Chinese-speaking audience. Under the language/locale policy, forcing a specific language without user opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

This JSON contains multiple user-facing descriptions, status messages, and recommendations exclusively in Chinese, such as the quota descriptions and alert text. Under the policy for natural-language violations, forcing a specific language without user opt-in can be a locale-policy issue when no alternative language or explicit regional justification is provided.

Content

No source excerpt is available for this finding.