Back to skill

Security audit

Windows Computer-Use Skill

Security checks for vulnerabilities and agentic risk

Overview

This Windows computer-control skill largely matches its stated purpose, but it should be reviewed because the shipped standalone session can grant desktop, screenshot, clipboard, and system-key access without a real user approval prompt.

Install only if you are comfortable giving a local MCP client control over your active Windows desktop. Close sensitive windows first, assume screenshots can show everything visible on the selected monitor, and prefer a version that adds explicit user approval for each app and clipboard/system-key flag plus pinned Python dependencies.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
Findings (4)

T05 · Unauthorized Access and Privilege Escalation

Error
Location
project/src/session.ts:23
Finding

Application and Sensitive Capability Requests Are Silently Auto-Approved

Content
View full analysis
app.resolved && !app.alreadyGranted) .map(app => ({ bundleId: app.resolved!.bundleId, displayName: app.resolved!.displayName, grantedAt: Date.now(), tier: app.proposedTier, })) const denied = req.apps .filter(app => !app.resolved) .map(app => ({ bundleId: app.requestedName, reason: 'not_installed' as const, })) return { granted, denied, flags: { ...DEFAULT_GRANT_FLAGS, ...req.requestedFlags, }, } } ``` The automatically approving function is installed directly as the permission handler: ```ts onPermissionRequest: async req => autoApprovePermission(req), ``` The model-facing tool schema describes `request_access` as requesting user permission and states that clipboard and system-key permissions are presented separately. The standalone session does not present such a confirmation mechanism. Instead, it approves every resolved, eligible application and copies all requested capability flags into the active grants. Built-in application tiers and policy-denied application categories continue to restrict some operations. However, these policy controls are not a substitute for user authorization and do not prevent silent approval of otherwise eligible applications. ### Technical Analysis The permission boundary is controlled by `onPermissionRequest`. A secure implementation should ask the user to approve the requested applications and sensitive flags or fail closed if no trusted approval channel exists. Here, application grants are generated solely from whether the application can be resolved as installe ...[truncated 1791 chars]
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Error
Location
project/src/computer-use/executor.ts:111
Finding

Application Allowlist Does Not Isolate Screenshot Contents

Content
View full analysis
{ const display = await this.getDisplaySize(opts.displayId) const [targetW, targetH] = computeTargetDims(display.width, display.height, display.scaleFactor) const result = await callPythonHelper('screenshot', { displayId: opts.displayId, targetWidth: targetW, targetHeight: targetH, jpegQuality: SCREENSHOT_JPEG_QUALITY, }) return result }, ``` The Python helper captures the entire monitor rectangle: ```py def capture_monitor(monitor: dict[str, int], resize: tuple[int, int] | None = None) -> dict[str, Any]: with mss.mss() as sct: raw = sct.grab(monitor) image = Image.frombytes("RGB", raw.size, raw.rgb) if resize: image = image.resize(resize, Image.Resampling.LANCZOS) buffer = BytesIO() image.save(buffer, format="JPEG", quality=75, optimize=True) base64_data = base64.b64encode(buffer.getvalue()).decode("ascii") return {"base64": base64_data, "width": image.width, "height": image.height} ``` The runtime explicitly advertises the absence of filtering: ```ts export const CLI_CU_CAPABILITIES = { screenshotFiltering: 'none' as const, platform: 'win32' as const, } ``` ### Technical Analysis The higher-level MCP interface passes an application allowlist to screenshot-related executor operations. However, the Windows implementation does not use that allowlist to filter or obscure ungranted windows. The helper captures the complete selected monitor using ...[truncated 1795 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
project/runtime/requirements.txt:1
Finding

First-Run Bootstrap Installs Unbounded Third-Party Python Packages

Content
View full analysis
=10.1.0 Pillow>=11.3.0 pyautogui>=0.9.54 psutil>=7.0.0 pywin32>=310 ``` The first-run bootstrap upgrades pip and installs whichever package versions satisfy those ranges at execution time: ```ts if (installedDigest !== digest) { logDebug('installing python runtime dependencies') await runOrThrow(pythonBinPath(), ['-m', 'pip', 'install', '--upgrade', 'pip'], 'pip upgrade') await runOrThrow( pythonBinPath(), ['-m', 'pip', 'install', '-r', requirementsPath], 'python dependency install', ) await writeFile(installStampPath, `${digest}\n`, 'utf8') } ``` ### Technical Analysis The audited source is not the complete effective code executed at runtime. On first use, pip resolves and installs current versions of direct and transitive packages from its configured package index. Because the dependencies are specified with open-ended `>=` constraints: - Future package releases can change behavior after this Skill version has been reviewed. - Transitive dependency versions are unconstrained. - Package artifacts are not verified against an audit-controlled hash list. - Automatically upgrading pip further changes the executable dependency-management code. The reviewed package names appear to be established public packages, and no typosquatted package or unsafe custom index was identified. The vulnerability is the lack of reproducibility and integrity pinning, not evidence that the currently named packages are malicious. ### Attack Path 1. The MCP server performs its first operation requiring the Python helper. 2. `ensureBootstrapped` creates a virtual environment. 3. The bootstrap upgrades pip using th ...[truncated 1006 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
project/src/computer-use/gates.ts:13
Finding

Screenshot Staleness Validation Is Disabled by Default and Unsupported by the Adapter

Content
View full analysis
null, ``` ### Technical Analysis Desktop automation typically selects coordinates from a previously captured screenshot. Between observation and action, the interface may change because of loading, pop-ups, focus changes, animations, notifications, or adversarial timing. The vendored MCP implementation contains a pixel-comparison safety mechanism intended to compare the action target against fresh screen data. In this runtime, the mechanism is disabled by default. Additionally, the adapter returns `null` for raw patch cropping, preventing that adapter capability from supplying comparison data. As a result, the normal execution path can apply coordinates derived from an old screenshot to a changed interface. This is a time-of-check/time-of-use weakness. Exploitation does not require code injection; an attacker-controlled application or web page can change what is displayed under the expected click position. ### Attack Path 1. The Agent captures a screenshot ...[truncated 1035 chars]
Remediation
View remediation
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (65)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The markdown focuses on packaging and bootstrap details while omitting user-facing high-risk capabilities such as interactive computer control, screenshot/zoom, monitor switching, clipboard access, and teach-mode workflows. For an MCP-connected computer-use skill, incomplete capability disclosure meaningfully raises the chance of unsafe approval and deployment because the actual authority over the workstation is broader than the description suggests.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The markdown focuses on packaging and bootstrap details while omitting user-facing high-risk capabilities such as interactive computer control, screenshot/zoom, monitor switching, clipboard access, and teach-mode workflows. For an MCP-connected computer-use skill, incomplete capability disclosure meaningfully raises the chance of unsafe approval and deployment because the actual authority over the workstation is broader than the description suggests.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
90% confidence
Finding

The markdown focuses on packaging and bootstrap details while omitting user-facing high-risk capabilities such as interactive computer control, screenshot/zoom, monitor switching, clipboard access, and teach-mode workflows. For an MCP-connected computer-use skill, incomplete capability disclosure meaningfully raises the chance of unsafe approval and deployment because the actual authority over the workstation is broader than the description suggests.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The markdown focuses on packaging and bootstrap details while omitting user-facing high-risk capabilities such as interactive computer control, screenshot/zoom, monitor switching, clipboard access, and teach-mode workflows. For an MCP-connected computer-use skill, incomplete capability disclosure meaningfully raises the chance of unsafe approval and deployment because the actual authority over the workstation is broader than the description suggests.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
90% confidence
Finding

The markdown focuses on packaging and bootstrap details while omitting user-facing high-risk capabilities such as interactive computer control, screenshot/zoom, monitor switching, clipboard access, and teach-mode workflows. For an MCP-connected computer-use skill, incomplete capability disclosure meaningfully raises the chance of unsafe approval and deployment because the actual authority over the workstation is broader than the description suggests.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
90% confidence
Finding

The markdown focuses on packaging and bootstrap details while omitting user-facing high-risk capabilities such as interactive computer control, screenshot/zoom, monitor switching, clipboard access, and teach-mode workflows. For an MCP-connected computer-use skill, incomplete capability disclosure meaningfully raises the chance of unsafe approval and deployment because the actual authority over the workstation is broader than the description suggests.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The markdown focuses on packaging and bootstrap details while omitting user-facing high-risk capabilities such as interactive computer control, screenshot/zoom, monitor switching, clipboard access, and teach-mode workflows. For an MCP-connected computer-use skill, incomplete capability disclosure meaningfully raises the chance of unsafe approval and deployment because the actual authority over the workstation is broader than the description suggests.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The markdown focuses on packaging and bootstrap details while omitting user-facing high-risk capabilities such as interactive computer control, screenshot/zoom, monitor switching, clipboard access, and teach-mode workflows. For an MCP-connected computer-use skill, incomplete capability disclosure meaningfully raises the chance of unsafe approval and deployment because the actual authority over the workstation is broader than the description suggests.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The markdown focuses on packaging and bootstrap details while omitting user-facing high-risk capabilities such as interactive computer control, screenshot/zoom, monitor switching, clipboard access, and teach-mode workflows. For an MCP-connected computer-use skill, incomplete capability disclosure meaningfully raises the chance of unsafe approval and deployment because the actual authority over the workstation is broader than the description suggests.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The markdown focuses on packaging and bootstrap details while omitting user-facing high-risk capabilities such as interactive computer control, screenshot/zoom, monitor switching, clipboard access, and teach-mode workflows. For an MCP-connected computer-use skill, incomplete capability disclosure meaningfully raises the chance of unsafe approval and deployment because the actual authority over the workstation is broader than the description suggests.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
90% confidence
Finding

The markdown focuses on packaging and bootstrap details while omitting user-facing high-risk capabilities such as interactive computer control, screenshot/zoom, monitor switching, clipboard access, and teach-mode workflows. For an MCP-connected computer-use skill, incomplete capability disclosure meaningfully raises the chance of unsafe approval and deployment because the actual authority over the workstation is broader than the description suggests.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The markdown focuses on packaging and bootstrap details while omitting user-facing high-risk capabilities such as interactive computer control, screenshot/zoom, monitor switching, clipboard access, and teach-mode workflows. For an MCP-connected computer-use skill, incomplete capability disclosure meaningfully raises the chance of unsafe approval and deployment because the actual authority over the workstation is broader than the description suggests.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
90% confidence
Finding

The markdown focuses on packaging and bootstrap details while omitting user-facing high-risk capabilities such as interactive computer control, screenshot/zoom, monitor switching, clipboard access, and teach-mode workflows. For an MCP-connected computer-use skill, incomplete capability disclosure meaningfully raises the chance of unsafe approval and deployment because the actual authority over the workstation is broader than the description suggests.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

The markdown focuses on packaging and bootstrap details while omitting user-facing high-risk capabilities such as interactive computer control, screenshot/zoom, monitor switching, clipboard access, and teach-mode workflows. For an MCP-connected computer-use skill, incomplete capability disclosure meaningfully raises the chance of unsafe approval and deployment because the actual authority over the workstation is broader than the description suggests.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The markdown focuses on packaging and bootstrap details while omitting user-facing high-risk capabilities such as interactive computer control, screenshot/zoom, monitor switching, clipboard access, and teach-mode workflows. For an MCP-connected computer-use skill, incomplete capability disclosure meaningfully raises the chance of unsafe approval and deployment because the actual authority over the workstation is broader than the description suggests.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The markdown focuses on packaging and bootstrap details while omitting user-facing high-risk capabilities such as interactive computer control, screenshot/zoom, monitor switching, clipboard access, and teach-mode workflows. For an MCP-connected computer-use skill, incomplete capability disclosure meaningfully raises the chance of unsafe approval and deployment because the actual authority over the workstation is broader than the description suggests.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The markdown focuses on packaging and bootstrap details while omitting user-facing high-risk capabilities such as interactive computer control, screenshot/zoom, monitor switching, clipboard access, and teach-mode workflows. For an MCP-connected computer-use skill, incomplete capability disclosure meaningfully raises the chance of unsafe approval and deployment because the actual authority over the workstation is broader than the description suggests.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
91% confidence
Finding

The markdown focuses on packaging and bootstrap details while omitting user-facing high-risk capabilities such as interactive computer control, screenshot/zoom, monitor switching, clipboard access, and teach-mode workflows. For an MCP-connected computer-use skill, incomplete capability disclosure meaningfully raises the chance of unsafe approval and deployment because the actual authority over the workstation is broader than the description suggests.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

The markdown focuses on packaging and bootstrap details while omitting user-facing high-risk capabilities such as interactive computer control, screenshot/zoom, monitor switching, clipboard access, and teach-mode workflows. For an MCP-connected computer-use skill, incomplete capability disclosure meaningfully raises the chance of unsafe approval and deployment because the actual authority over the workstation is broader than the description suggests.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The markdown focuses on packaging and bootstrap details while omitting user-facing high-risk capabilities such as interactive computer control, screenshot/zoom, monitor switching, clipboard access, and teach-mode workflows. For an MCP-connected computer-use skill, incomplete capability disclosure meaningfully raises the chance of unsafe approval and deployment because the actual authority over the workstation is broader than the description suggests.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: fast-uri==3.1.0 — 7 advisory(ies): CVE-2026-13676 (fast-uri vulnerable to host confusion via failed IDN canonicalization); CVE-2026-18446 (fast-uri vulnerable to host confusion via backslash authority introducer); CVE-2026-75975 (fast-uri vulnerable to server-side request forgery via malformed IPv6 normalizat) +4 more

High
Category
Supply Chain
Confidence
80% confidence
Finding

fast-uri 3.1.0 has multiple high-severity URI parsing and normalization advisories, including host confusion and possible SSRF-enabling behaviors. Because this skill is a bundled bootstrap/runtime component that may broker network-facing MCP or web interactions through transitive libraries, unsafe URI canonicalization can become materially dangerous if any security decisions rely on parsed URLs.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: hono==4.12.9 — 16 advisory(ies): CVE-2026-56762 (Hono missing validation of cookie name on write path in setCookie()); CVE-2026-47676 (Hono: app.mount() strips mount prefix using undecoded path, causing incorrect ro); CVE-2026-47675 (Hono: Cookie helper does not sanitize sameSite and priority, allowing Set-Cookie) +13 more

High
Category
Supply Chain
Confidence
84% confidence
Finding

hono 4.12.9 is associated with many advisories affecting cookies, routing, and request handling, making this a substantial third-party risk even though the lockfile alone does not prove every vulnerable feature is used. In a Windows computer-use skill that bundles a standalone runtime and may expose local HTTP/MCP endpoints, framework-level routing and path handling flaws are more concerning than in a purely offline tool.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: ip-address==10.1.0 — 2 advisory(ies): CVE-2026-69192 (ip-address: Address4 decodes leading-zero octets as decimal while resolvers deco); CVE-2026-42338 (ip-address has XSS in Address6 HTML-emitting methods)

High
Category
Supply Chain
Confidence
80% confidence
Finding

ip-address 10.1.0 has advisories covering address parsing inconsistencies and HTML-emitting XSS helpers. This is a real dependency weakness, but its practical impact depends on whether the skill uses the package for trust decisions, ACLs, SSRF defenses, or renders its HTML output; the lockfile alone cannot confirm that usage.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

This code grants requested app permissions as a built-in behavior of session setup, which is an unjustified capability for a bootstrap/runtime layer. That design bypasses meaningful consent boundaries and can let downstream agent logic obtain broad access to installed applications simply by naming them in a permission request.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

Permission requests are approved automatically with no warning, prompt, or confirmation step, eliminating user awareness and consent. Because the response also merges in requested flags, an agent may obtain additional operational privileges without any visible checkpoint.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.dangerous_exec

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
project/src/lib/execFileNoThrow.ts:9