Back to skill

Security audit

Linux System Controller

Security checks for vulnerabilities and agentic risk

Overview

The skill is a disclosed Linux system-control toolkit, but verified command-injection flaws, runtime package installation, and broad local/network control make it require Review before installation.

Review and harden this skill before installing on a real desktop or server. Use it only in a contained environment, avoid running it as root, do not pass real long-lived tokens on the command line, restrict HTTP destinations, and fix shell=True command construction and runtime pip installation first.

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 (6)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/process_manager.py:40
Finding

Shell Command Injection Through Process Name Arguments

Content
View full analysis
/tmp/process_manager_result #` would cause the shell to execute the additional `id` command. ### Impact Assessment Successful exploitati ...[truncated 349 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/hardware_controller.py:185
Finding

Shell Command Injection Through Network Adapter Names

Content
View full analysis
/tmp/hardware_controller_result #` demonstrates the command boundary with ...[truncated 407 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/window_manager.py:82
Finding

Shell Command Injection Through Window Identifier Arguments

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
scripts/iot_controller.py:29
Finding

Automatic Installation of Unpinned Runtime Dependencies

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/iot_controller.py:249
Finding

Long-Lived Access Tokens Passed in Process Arguments and Sent to Unrestricted URLs

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
scripts/gui_controller.py:146
Finding

Sensitive Screenshots Persist Without Explicit Access or Retention Controls

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • 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
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
Findings (54)

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

This documented skill includes generic HTTP/REST access to arbitrary endpoints under the broad banner of system control, which meaningfully expands capability beyond a narrowly described local-control package. In practice, that can be used to exfiltrate data, contact attacker-controlled services, or operate as an unrestricted network pivot, and the broad description may prevent users and reviewers from recognizing that risk.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

This documented skill includes generic HTTP/REST access to arbitrary endpoints under the broad banner of system control, which meaningfully expands capability beyond a narrowly described local-control package. In practice, that can be used to exfiltrate data, contact attacker-controlled services, or operate as an unrestricted network pivot, and the broad description may prevent users and reviewers from recognizing that risk.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

This documented skill includes generic HTTP/REST access to arbitrary endpoints under the broad banner of system control, which meaningfully expands capability beyond a narrowly described local-control package. In practice, that can be used to exfiltrate data, contact attacker-controlled services, or operate as an unrestricted network pivot, and the broad description may prevent users and reviewers from recognizing that risk.

Content

No source excerpt is available for this finding.

Vague Triggers

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The activation description is extremely broad and covers many common requests involving desktop control, networking, screenshots, OCR, smart-home control, and device communication. In an agent-routing context, this increases the chance the skill is invoked in situations involving sensitive data or high-impact actions, expanding attack surface and enabling overreach beyond user intent.

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 issue because the code exposes privileged system-control operations and passes constructed command strings to a shell. In the skill context, parameters like --adapter are likely agent/user influenced, so an attacker could inject shell metacharacters and execute arbitrary OS commands, potentially altering network state, power state, or broader system behavior.

Content

Scanner excerpt · scripts/hardware_controller.py (reported line 30)May include surrounding context.

python
def run_command(cmd, timeout=30):
    """Execute shell command with proper encoding."""
    try:
        result = subprocess.run(
            cmd,
            shell=True,
            capture_output=True,

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · scripts/iot_controller.py (reported line 251)May include surrounding context.

python
ha_tog.add_argument("--entity-id", type=str, required=True)
    
    p_ha.add_argument("--url", type=str, required=True, help="Home Assistant base URL")
    p_ha.add_argument("--token", type=str, required=True, help="Long-lived access token")

    # Generic HTTP
    p_http = sub.add_parser("http", help="Generic HTTP/REST control")

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
99% confidence
Finding

This tool exposes a shell-backed command runner that is fed by higher-level functions using untrusted parameters, enabling tool parameter abuse. In this skill context, users ask the agent to control Linux processes, so an attacker can supply crafted names or values to break out of intended process management and execute arbitrary commands.

Content

Scanner excerpt · scripts/process_manager.py (reported line 23)May include surrounding context.

python
def run_command(cmd, timeout=30):
    """Execute shell command with proper encoding."""
    try:
        result = subprocess.run(
            cmd,
            shell=True,
            capture_output=True,

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
100% confidence
Finding

This duplicate finding points to the same unsafe Popen(..., shell=True) call, which allows attacker-controlled command text to be interpreted by the shell. Because execution is detached, malicious commands can continue running after the invoking session ends, compounding the impact.

Content

Scanner excerpt · scripts/process_manager.py (reported line 111)May include surrounding context.

python
"""Start a process."""
    try:
        # Use nohup to run in background
        process = subprocess.Popen(
            command,
            shell=True,
            stdout=subprocess.DEVNULL,

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
100% confidence
Finding

This duplicate finding points to the same unsafe Popen(..., shell=True) call, which allows attacker-controlled command text to be interpreted by the shell. Because execution is detached, malicious commands can continue running after the invoking session ends, compounding the impact.

Content

Scanner excerpt · scripts/process_manager.py (reported line 111)May include surrounding context.

python
"""Start a process."""
    try:
        # Use nohup to run in background
        process = subprocess.Popen(
            command,
            shell=True,
            stdout=subprocess.DEVNULL,

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
99% confidence
Finding

The tool takes parameters that flow into shell-command construction without robust validation, creating a direct parameter-abuse channel. Because this skill is a privileged system-controller for desktop automation, successful abuse can escalate from UI manipulation to arbitrary command execution and full compromise of the user's session.

Content

Scanner excerpt · scripts/window_manager.py (reported line 24)May include surrounding context.

python
def run_command(cmd, timeout=30):
    """Execute shell command with proper encoding handling."""
    try:
        result = subprocess.run(
            cmd,
            shell=True,
            capture_output=True,

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding

The skill advertises and orchestrates powerful shell and network-capable operations but does not declare an explicit tool scope such as allowed-tools or permissions. For a system-control skill, this weakens policy boundaries and can let the agent invoke high-risk capabilities more broadly than reviewers or runtime policy expect.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill supports Home Assistant tokens and generic HTTP operations to arbitrary endpoints but does not clearly warn that credentials, device state, and potentially sensitive environment data may be transmitted externally. In this context, omission is especially risky because the same skill already has system-control semantics, making users more likely to trust it with powerful secrets and commands.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

Screenshot, OCR, and visual-recognition functions can capture passwords, personal messages, tokens, financial data, and other sensitive on-screen content, yet the markdown provides no clear privacy warning about that collection risk. Because this skill is specifically designed to inspect the screen, the context makes the omission more dangerous than in a non-visual skill.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The reference explicitly documents sleep, hibernate, shutdown, and restart operations without any caution about immediate service interruption, unsaved data loss, or the need for explicit user confirmation. In a system-control skill, these are high-risk actions because an agent could invoke them directly and disrupt the active session or terminate critical work.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The documented network enable/disable commands can sever the host's connectivity, including the agent's own control channel, yet the reference provides no warning about operational impact. In an automation context, this increases the chance of accidental denial of service or loss of remote access.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The command reference includes bearer tokens in CLI examples and supports outbound HTTP/Home Assistant calls without warning about secret exposure, logging risks, or exfiltration of data to remote services. In a system-controller skill, this is especially dangerous because it combines sensitive credentials with network-capable actions that can affect external devices or transmit data off-host.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

Mouse and keyboard automation can trigger arbitrary actions in the active desktop session, including dismissing prompts, sending messages, launching programs, or interacting with privileged dialogs. Without warnings or safety guidance, the skill makes unintended or unsafe UI-driven actions more likely, especially when window focus changes or coordinates are stale.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

Screenshot, OCR, pixel sampling, and image-based interaction can capture secrets visible on screen, including messages, credentials, tokens, and personal data. Because this skill is designed for desktop control, these capabilities materially increase privacy and data-exfiltration risk if used without prominent warnings or consent boundaries.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Self-installing pyautogui extends the skill beyond desktop control into host package management, which is a separate privileged capability. In the context of a system-controller skill, this is more dangerous because the tool already enables UI automation that could be chained with newly installed software for broader host manipulation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Automatic pip installation occurs without any confirmation, warning, or explicit opt-in, so a caller can cause software changes simply by invoking the skill. Unannounced package installation is unsafe because it can surprise operators, violate change-control expectations, and introduce unreviewed code into the environment.

Content

No source excerpt is available for this finding.

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
96% confidence
Finding

The script invokes pip at runtime to install pyautogui automatically, which is an unexpected capability expansion and local environment modification. Even though the command is not shell-injected, it still executes an external package-management operation without consent, creating supply-chain and integrity risk if package sources or environment configuration are compromised.

Content

Scanner excerpt · scripts/gui_controller.py (reported line 36)May include surrounding context.

python
except ImportError:
        print("Installing pyautogui...", file=sys.stderr)
        import subprocess
        subprocess.check_call(
            [sys.executable, "-m", "pip", "install", "pyautogui", "-q"],
            stdout=subprocess.DEVNULL
        )

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Installing pillow at runtime modifies the local environment and adds package-management behavior outside the stated scope of screenshot handling. This violates least privilege and creates an unnecessary avenue for unintended changes or abuse.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script silently installs pillow when missing, without any user-facing disclosure that the environment will be modified. This undermines transparency and safe operation practices, especially for a desktop-control skill that may be used on sensitive hosts.

Content

No source excerpt is available for this finding.

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
96% confidence
Finding

The script automatically installs pillow during execution, causing silent software installation unrelated to the immediate GUI action requested by a caller. This increases attack surface and can let a skill alter the host environment in ways users may not expect or authorize.

Content

Scanner excerpt · scripts/gui_controller.py (reported line 54)May include surrounding context.

python
except ImportError:
        print("Installing pillow...", file=sys.stderr)
        import subprocess
        subprocess.check_call(
            [sys.executable, "-m", "pip", "install", "pillow", "-q"],
            stdout=subprocess.DEVNULL
        )

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The OCR dependency path downloads or installs pytesseract during execution, which is environment-changing behavior not inherent to OCR itself. Because OCR can expose secrets visible on screen, combining it with silent package installation raises the overall risk profile of the skill.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.