Back to skill

Security audit

Minimal Agent

Security checks for vulnerabilities and agentic risk

Overview

This OS-control skill needs Review because it can fall back to unrestricted command execution by default, with weak confirmation controls and unverified external controller code.

Install only if you intentionally want an agent that can run arbitrary commands and change system state. Prefer forcing function-only mode, pinning and verifying the system-controller dependency, and avoiding text or mixed mode on machines with sensitive files, credentials, business data, or production access.

Vulnerability Patterns
  • 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
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
Findings (3)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/agent.py:213
Finding

Default Auto Mode Fails Open to Unrestricted Shell Execution

Content
View full analysis
ExecutionResult: command_str = command.strip() if not command_str: return ExecutionResult(False, "Command is empty", "") try: result = subprocess.run( command_str, shell=True, capture_output=True, text=True, timeout=30, encoding="utf-8", errors="replace", ) output = result.stdout or result.stderr or "(no output)" success = result.returncode == 0 return ExecutionResult(success, output, command_str) ``` ```python if actual_mode == "text": command = " ".join(remaining_args) result = execute_raw_command(command) print(result) return ``` ### Technical Analysis The configured default is `auto` mode. When the external `system-controller` directory, required scripts, or Python runtime cannot be validated, `determine_actual_mode()` switches from the restricted function interface to unrestricted text mode. Text mode concatenates all remaining command-line arguments into one string and passes that string to `subprocess.run()` with `shell=True`. Consequently, shell metacharacters, pipelines, redirections, command substitutions, and chained commands are interpreted directly by the operating-system shell. There is no executable allowlist, argument-level validation, sandbox, privilege reduction, or pol ...[truncated 1843 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/agent.py:657
Finding

Dangerous Operations Can Bypass Confirmation Controls

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
SKILL.md:268
Finding

Unpinned External Controller Code Is Installed and Executed

Content
View full analysis
ExecutionResult: python = get_python(script_name) script_path = get_script_path(script_name) cmd = [python, script_path] + args command_str = " ".join(cmd) try: result = subprocess.run( cmd, capture_output=True, text=True, timeout=timeout, encoding="utf-8", errors="replace", ) ``` ### Technical Analysis The Skill depends on a separate `system-controller` repository and instructs users to clone its current default branch or download an archive of `main`. Neither procedure pins a reviewed commit, versioned immutable release, cryptographic checksum, nor signature. The Agent's availability check verifies only that the directory and selected filenames exist and that the configured Python interpreter runs. It does not verify the controller scripts' origin or contents. The mapped controller files are then executed as Python programs. As a result, the effective code executed by the Skill may differ from the code present when this project was reviewed. A compromise of the upstream repository, distribution mirror, acco ...[truncated 1429 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
Findings (21)

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill is presented as a controller wrapper for system-controller, but the documentation explicitly adds a V1/text mode that can execute any system command, scripts, file operations, network actions, and configuration changes. That gap between declared purpose and effective capability is dangerous because users and orchestrators may treat the skill as a constrained automation tool when it is למעשה a general-purpose code-execution interface.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill explicitly advertises unrestricted system-command, file, script, network, database, installation, and security operations in V1 mode without prominent safety warnings or hard controls. In the context of an agent skill, this effectively grants a conversational path to full host compromise, data destruction, exfiltration, and persistence if abused or prompt-injected.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill description frames the agent as protocol-driven and constrained to system-controller operations, but the implementation can automatically fall back to unrestricted shell execution. That mismatch is dangerous because users and orchestrators may trust the narrower stated scope while the code can perform arbitrary system actions.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

Mixed mode explicitly broadens the skill into file operations, script execution, database actions, and configuration changes, which exceed the stated minimal OS-control scope. This creates hidden capability expansion and raises the likelihood of unsafe or unauthorized system modification through natural-language task routing.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

Mixed mode can route portions of a natural-language task into V1 raw shell execution automatically, without warning or confirmation. That makes the dangerous capability easier to trigger indirectly and hides escalation behind seemingly benign multi-step task decomposition.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

Arbitrary shell command execution is far broader than necessary for a minimal OS control agent and effectively turns the skill into a general-purpose command runner. Because it runs on the host OS, exploitation could lead to full compromise of user data, system integrity, and connected devices accessible from the machine.

Content

No source excerpt is available for this finding.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
99% confidence
Finding

This is a concrete tool-parameter abuse vector because untrusted task text is passed into shell=True execution. Any attacker-controlled metacharacters, command chaining, redirection, or encoded payloads can transform benign-looking input into arbitrary host-level actions.

Content

Scanner excerpt · scripts/agent.py (reported line 751)May include surrounding context.

python
try:
        # 执行任意命令
        result = subprocess.run(
            command_str,
            shell=True,
            capture_output=True,

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

In non-interactive text mode, the skill directly joins user input and executes it as a shell command without confirmation or safety checks. In an agent setting, this removes the last human checkpoint and allows prompt-driven or accidental arbitrary command execution on the host.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding

The skill exposes shell-like and arbitrary command execution capability but does not declare any tool scope, permissions, or allowed-tools boundaries. This removes an important policy control layer and makes it easier for broad user prompts or prompt-injection chains to reach powerful system operations without explicit restriction.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The trigger phrases are extremely broad and match common everyday requests such as opening apps, typing text, screenshots, Wi‑Fi, and device control. Broad routing increases the chance this skill is invoked in contexts where a less-privileged skill should have been used, expanding exposure to destructive OS, hardware, and network actions.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill describes screenshot/OCR, serial communication, IoT control, and HTTP API capabilities without privacy, consent, or data-transmission safeguards. These features can expose screen contents, credentials, device telemetry, or send commands to external systems, which is especially risky in a broadly-triggered OS control skill.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

User-facing natural-language comments, usage examples, prompts, and banners are consistently written in Chinese, and the examples assume Chinese-language commands. There is no indication that users may choose another language or that the locale restriction is intentional and justified.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The comment claims the script only performs simple execution work, but the code includes autonomous mode selection and unrestricted command execution paths. Misleading security-relevant documentation increases operational risk because reviewers, users, or calling systems may underestimate the skill's authority and exposure.

Content

No source excerpt is available for this finding.

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
70% confidence
Finding

subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Content

Scanner excerpt · scripts/agent.py (reported line 149)May include surrounding context.

python
# 4. 测试 Python 环境
        try:
            result = subprocess.run(
                [CONFIG.python_path, "--version"],
                capture_output=True,
                text=True,

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
70% confidence
Finding

subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Content

Scanner excerpt · scripts/agent.py (reported line 291)May include surrounding context.

python
command_str = " ".join(cmd)

    try:
        result = subprocess.run(
            cmd,
            capture_output=True,
            text=True,

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
77% confidence
Finding

The manifest justifies IoT and device interaction, but the code exposes generic http_get/http_post/http_put operations rather than limiting network actions to named IoT platforms or devices. Generic HTTP methods can be used for arbitrary network interaction unrelated to controlling Windows, serial devices, or IoT endpoints described in the manifest.

Content

No source excerpt is available for this finding.

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
99% confidence
Finding

This code executes attacker-controlled text with shell=True, giving the skill unrestricted shell execution capability. In the context of an OS-control agent, this enables arbitrary command execution, file tampering, persistence, data theft, and destructive system actions far beyond the stated minimal controller role.

Content

Scanner excerpt · scripts/agent.py (reported line 751)May include surrounding context.

python
try:
        # 执行任意命令
        result = subprocess.run(
            command_str,
            shell=True,
            capture_output=True,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · scripts/config.toml (reported line 5)May include surrounding context.

toml
[llm]
# 这些字段由 WorkBuddy 运行时提供,无需配置
# api_url = "https://api.openai.com/v1/chat/completions"
# api_key = "..."
# model = "gpt-4o"
# max_tokens = 4096

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The configuration explicitly allows modes such as text, force_text, and mixed, and the selected auto mode can fall back to direct command execution when the system-controller is unavailable. That expands behavior beyond the described protocol-driven controller and can let natural-language inputs reach arbitrary shell/OS command execution paths, which is a significant risk for a Windows control skill with process, hardware, and GUI automation capabilities.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

This TOML manifest/config describes modes such as 'auto' and 'mixed' with phrases like '自动检测' and '智能混合模式:自动分析任务', but it does not specify the concrete conditions that determine when each mode activates or what actions are excluded. Because manifest files are in scope for SQP-1, this ambiguity can lead to unintended invocation behavior or unclear operator expectations.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The comments present system-controller usage as the recommended safe path, but the actual mode setting of auto permits fallback to direct command execution. This mismatch can cause operators to overtrust the configuration and unintentionally deploy a broader execution surface than intended, increasing the chance of unsafe command execution.

Content

No source excerpt is available for this finding.