Back to skill

Security audit

Linux Computer-Use Skill

Security checks for vulnerabilities and agentic risk

Overview

This Linux desktop-control skill matches its stated purpose, but it silently grants broad app and clipboard/system-key permissions instead of requiring clear user approval.

Install only if you are comfortable giving the connected agent trusted-local control of your Linux desktop session. Keep sensitive windows and clipboard contents out of view, and prefer a version that requires explicit user approval for each app and sensitive flag before allowing screenshots, input, clipboard access, or system-key combinations.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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 (2)

T05 · Unauthorized Access and Privilege Escalation

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

Permission Requests Are Silently Auto-Approved

Content
View full analysis

Vulnerability Details

File Location: project/src/session.ts:21-43 and project/src/session.ts:61
Vulnerability Type: Missing user authorization and automatic privilege granting
Risk Level: High

Vulnerable Code:

ts
function autoApprovePermission(req: CuPermissionRequest): CuPermissionResponse {
  const granted = req.apps
    .filter(app => 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 automatic approval function is installed as the session permission handler:

ts
onPermissionRequest: async req => autoApprovePermission(req),

Technical Analysis

The MCP permission model is intended to require authorization before an agent can interact with applications or obtain sensitive capability flags. The standalone session replaces an interactive approval decision with autoApprovePermission(), which grants every resolved application at the requested access tier.

The function also copies all values from req.requestedFlags over the default grant flags. Consequently, an agent can request and receive capabilities such as clipboard read, clipboard write, or protected system-key combinations without an actual user confirmation step.

These grants are subsequently stored in session state by onAllowedAppsChanged, allowing later MCP calls to pass application and capability gates. This is particularly sensitive because the runtime can capture the desktop, enumerate processes and applications, read or modify th ...[truncated 2008 chars]

Remediation
View remediation

Remediation Suggestions

  • Replace autoApprovePermission() with an explicit user-confirmation mechanism that blocks until the user approves or rejects the request.
  • Present the exact application identifier, display name, requested access tier, and every requested capability flag.
  • Default-deny clipboard read, clipboard write, and system-key capabilities.
  • Maintain separate, revocable grants for each application and capability.
  • Do not merge requested flags into session grants unless each flag has been explicitly authorized.
  • If unattended operation is required, require an explicit opt-in configuration and a static allowlist created before server startup.
  • Prevent the agent itself from modifying the unattended allowlist.
  • Record authorization decisions in an audit log without storing sensitive clipboard or screenshot contents.
  • Add tests proving that application access and sensitive flags are rejected when no user approval callback is available.

T08 · Insecure Dependencies

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

First-Run Bootstrap Installs Unpinned Python Dependencies Without Integrity Verification

Content
View full analysis

Vulnerability Details

File Location: project/runtime/requirements.txt:1-5 and project/src/computer-use/pythonBridge.ts:80-89
Vulnerability Type: Mutable dependency resolution and missing package integrity verification
Risk Level: Medium

Vulnerable Code:

text
mss>=10.1.0
Pillow>=11.3.0
pyautogui>=0.9.54
psutil>=7.0.0
python-xlib>=0.33

The dependencies are installed automatically during runtime bootstrap:

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

Every Python dependency uses a lower-bound constraint rather than an exact version. On first run, pip can therefore select any current or future package version satisfying the constraint. The bootstrap also upgrades pip to an unspecified latest compatible release.

No package hashes are supplied, and pip is not invoked with --require-hashes. The SHA-256 installation stamp only hashes the text of requirements.txt; it neither records the versions actually resolved nor authenticates the downloaded distributions. The same unchanged requirements file can consequently resolve to different code at different times.

This creates a supply-chain exposure because imported third-party code executes in a runtime with access to screenshots, X11 input injection, clipboard data, process enumeration, and application launching. No evidence was found that the listed packages are currently malicious or obtained from an unusual registry; the risk arises from mutable future dependency resolution and absent artifact verification.

Attack Path

  1. The Skill is launche ...[truncated 1571 chars]
Remediation
View remediation

Remediation Suggestions

  • Pin every direct and transitive Python dependency to an exact reviewed version.
  • Generate a reproducible lock file containing cryptographic hashes for all supported platforms.
  • Install with pip install --require-hashes from the locked dependency set.
  • Pin the pip version instead of automatically upgrading it to the latest available release.
  • Record and verify the resolved lock-file digest rather than only hashing broad direct requirements.
  • Consider making dependency installation an explicit administrative setup step rather than performing it during the first functional invocation.
  • Restrict package indexes to approved HTTPS repositories and disable unexpected extra indexes.
  • Use a controlled artifact mirror where feasible.
  • Add automated dependency vulnerability and provenance checks to the release process.
  • Prefer npm ci for the Node.js portion so installation follows the included lock file exactly.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (73)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill context is especially sensitive because 'computer-use' inherently implies desktop control, and the finding indicates additional capabilities such as screenshots, clipboard operations, monitor switching, and guided walkthrough tooling. Cross-platform support indications also conflict with the Linux-only description, increasing the risk of user misunderstanding about what the skill can do and where it can run.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
88% confidence
Finding

The skill context is especially sensitive because 'computer-use' inherently implies desktop control, and the finding indicates additional capabilities such as screenshots, clipboard operations, monitor switching, and guided walkthrough tooling. Cross-platform support indications also conflict with the Linux-only description, increasing the risk of user misunderstanding about what the skill can do and where it can run.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The skill context is especially sensitive because 'computer-use' inherently implies desktop control, and the finding indicates additional capabilities such as screenshots, clipboard operations, monitor switching, and guided walkthrough tooling. Cross-platform support indications also conflict with the Linux-only description, increasing the risk of user misunderstanding about what the skill can do and where it can run.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill context is especially sensitive because 'computer-use' inherently implies desktop control, and the finding indicates additional capabilities such as screenshots, clipboard operations, monitor switching, and guided walkthrough tooling. Cross-platform support indications also conflict with the Linux-only description, increasing the risk of user misunderstanding about what the skill can do and where it can run.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill context is especially sensitive because 'computer-use' inherently implies desktop control, and the finding indicates additional capabilities such as screenshots, clipboard operations, monitor switching, and guided walkthrough tooling. Cross-platform support indications also conflict with the Linux-only description, increasing the risk of user misunderstanding about what the skill can do and where it can run.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The skill context is especially sensitive because 'computer-use' inherently implies desktop control, and the finding indicates additional capabilities such as screenshots, clipboard operations, monitor switching, and guided walkthrough tooling. Cross-platform support indications also conflict with the Linux-only description, increasing the risk of user misunderstanding about what the skill can do and where it can run.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill context is especially sensitive because 'computer-use' inherently implies desktop control, and the finding indicates additional capabilities such as screenshots, clipboard operations, monitor switching, and guided walkthrough tooling. Cross-platform support indications also conflict with the Linux-only description, increasing the risk of user misunderstanding about what the skill can do and where it can run.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill context is especially sensitive because 'computer-use' inherently implies desktop control, and the finding indicates additional capabilities such as screenshots, clipboard operations, monitor switching, and guided walkthrough tooling. Cross-platform support indications also conflict with the Linux-only description, increasing the risk of user misunderstanding about what the skill can do and where it can run.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill context is especially sensitive because 'computer-use' inherently implies desktop control, and the finding indicates additional capabilities such as screenshots, clipboard operations, monitor switching, and guided walkthrough tooling. Cross-platform support indications also conflict with the Linux-only description, increasing the risk of user misunderstanding about what the skill can do and where it can run.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill context is especially sensitive because 'computer-use' inherently implies desktop control, and the finding indicates additional capabilities such as screenshots, clipboard operations, monitor switching, and guided walkthrough tooling. Cross-platform support indications also conflict with the Linux-only description, increasing the risk of user misunderstanding about what the skill can do and where it can run.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

The skill context is especially sensitive because 'computer-use' inherently implies desktop control, and the finding indicates additional capabilities such as screenshots, clipboard operations, monitor switching, and guided walkthrough tooling. Cross-platform support indications also conflict with the Linux-only description, increasing the risk of user misunderstanding about what the skill can do and where it can run.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

The skill context is especially sensitive because 'computer-use' inherently implies desktop control, and the finding indicates additional capabilities such as screenshots, clipboard operations, monitor switching, and guided walkthrough tooling. Cross-platform support indications also conflict with the Linux-only description, increasing the risk of user misunderstanding about what the skill can do and where it can run.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill context is especially sensitive because 'computer-use' inherently implies desktop control, and the finding indicates additional capabilities such as screenshots, clipboard operations, monitor switching, and guided walkthrough tooling. Cross-platform support indications also conflict with the Linux-only description, increasing the risk of user misunderstanding about what the skill can do and where it can run.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill context is especially sensitive because 'computer-use' inherently implies desktop control, and the finding indicates additional capabilities such as screenshots, clipboard operations, monitor switching, and guided walkthrough tooling. Cross-platform support indications also conflict with the Linux-only description, increasing the risk of user misunderstanding about what the skill can do and where it can run.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill context is especially sensitive because 'computer-use' inherently implies desktop control, and the finding indicates additional capabilities such as screenshots, clipboard operations, monitor switching, and guided walkthrough tooling. Cross-platform support indications also conflict with the Linux-only description, increasing the risk of user misunderstanding about what the skill can do and where it can run.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

The skill context is especially sensitive because 'computer-use' inherently implies desktop control, and the finding indicates additional capabilities such as screenshots, clipboard operations, monitor switching, and guided walkthrough tooling. Cross-platform support indications also conflict with the Linux-only description, increasing the risk of user misunderstanding about what the skill can do and where it can run.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill context is especially sensitive because 'computer-use' inherently implies desktop control, and the finding indicates additional capabilities such as screenshots, clipboard operations, monitor switching, and guided walkthrough tooling. Cross-platform support indications also conflict with the Linux-only description, increasing the risk of user misunderstanding about what the skill can do and where it can run.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill context is especially sensitive because 'computer-use' inherently implies desktop control, and the finding indicates additional capabilities such as screenshots, clipboard operations, monitor switching, and guided walkthrough tooling. Cross-platform support indications also conflict with the Linux-only description, increasing the risk of user misunderstanding about what the skill can do and where it can run.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill context is especially sensitive because 'computer-use' inherently implies desktop control, and the finding indicates additional capabilities such as screenshots, clipboard operations, monitor switching, and guided walkthrough tooling. Cross-platform support indications also conflict with the Linux-only description, increasing the risk of user misunderstanding about what the skill can do and where it can run.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README explicitly states screenshotFiltering: none but does not clearly warn that screenshots may include secrets, personal data, credentials, messages, or other sensitive on-screen content. Because this is a computer-use skill whose core purpose is screen capture and control, lack of a strong warning materially raises the chance of unintended sensitive-data exposure.

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
83% confidence
Finding

fast-uri is a transitive dependency of ajv used by the MCP SDK, and the advisory set includes host-confusion and SSRF-style URI parsing flaws. In a computer-use skill that may accept model-driven or user-influenced URLs, incorrect URI normalization can cause validation bypass, misrouting, or unintended outbound access to internal or attacker-chosen hosts.

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
86% confidence
Finding

hono is pulled in by the MCP SDK and has numerous listed advisories affecting routing, cookie handling, and request processing. Because this skill is a computer-use runtime and may expose local control or automation endpoints, weaknesses in the underlying web framework can materially increase the risk of request smuggling, auth/session mishandling, or route confusion if those SDK server features are enabled.

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 is used transitively by express-rate-limit, and the cited issues include leading-zero parsing ambiguity and HTML-emitting XSS helpers. In a network-facing control skill, IP parsing ambiguities can undermine allow/deny logic or rate-limiting correctness if client IP interpretation influences trust or throttling decisions.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The session context unconditionally approves permission requests for any resolved app that is not already granted, and it merges all requested flags into the returned grant set without any user confirmation, policy gate, or allowlist validation. In a computer-use skill, this effectively removes the consent boundary around app access and can let the agent silently expand its reach to additional applications and capabilities.

Content

No source excerpt is available for this finding.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · project/src/vendor/computer-use-mcp/toolCalls.ts (reported line 351)May include surrounding context.

ts
//
// Threat: tier "click" blocks type/key/right-click-Paste, but a click-tier
// terminal/IDE may have a UI Paste button that's plain-left-clickable. If the
// clipboard holds `rm -rf /` — from the user, from a prior full-tier paste,
// OR from the agent's own write_clipboard call (which doesn't route through
// runInputActionGates) — a left_click on that button injects it.
//

Static analysis

Detected: suspicious.dangerous_exec

Shell command execution detected (child_process).

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