Back to skill

Security audit

Pywayne Gui

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward Windows GUI automation guide; its sensitive capabilities are disclosed and fit the stated purpose, but users should apply least privilege and caution around global hotkeys, window closing, and dependency installation.

Install only in a virtual environment from a trusted package index, prefer pinned dependency versions, and run without administrator rights unless a specific operation requires elevation. Use global hotkeys and window-closing automation only on intended applications, with confirmation or save checks where data loss would matter.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:26
Finding

Unpinned Third-Party Dependencies Installed from a Mutable Package Index

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 26-32
Vulnerability Type: Unpinned and unverified third-party dependencies
Risk Level: Medium

The documentation instructs users to install multiple Python packages without version constraints, integrity hashes, a lockfile, or an explicitly trusted package source.

markdown
## Dependencies

| 包 | 用途 | 安装命令 |
|------|------|----------|
| pywin32 | Windows API 封装 | `pip install pywin32` |
| pyuserinput | 键盘鼠标输入 | `pip install pyuserinput` |
| pyautogui | GUI 自动化 | `pip install pyautogui` |

Technical Analysis

Running pip install with an unpinned package name resolves whichever release the configured package index currently presents as appropriate. The project supplies no reviewed version constraints, cryptographic hashes, or lockfile to ensure that users install the same dependency artifacts that were assessed by the project author.

Python package installation can execute package-controlled build or installation logic. A compromised package release, transitive dependency, package repository, or local pip index configuration could therefore introduce attacker-controlled code. The risk is significant for these dependencies because they provide access to Windows APIs and keyboard, mouse, and GUI automation capabilities.

The audit found no evidence that the named packages are currently malicious. The vulnerability is the unsafe and mutable dependency installation process rather than a confirmed compromise of a particular package.

Attack Path

  1. An attacker compromises a named dependency, one of its transitive dependencies, or a package source trusted by the victim's pip configuration.
  2. The attacker publishes or serves a malicious distribution under a dependency name accepted by the unpinned installation command.
  3. A user follows SKILL.md and runs one of the documented pip install commands.
  4. Pip resolves and downloads the attack ...[truncated 1024 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin every direct dependency to a reviewed, exact version rather than using unconstrained package names.
  2. Create a lockfile or hash-locked requirements file containing all direct and transitive dependencies.
  3. Install with hash enforcement, for example:
    bash
    python -m pip install --require-hashes -r requirements.txt
    
  4. Document the approved package index and use an explicitly configured trusted repository rather than relying on ambient pip configuration.
  5. Verify package provenance and review release metadata before updating pinned versions.
  6. Perform dependency updates through a controlled review process that includes vulnerability scanning and testing.
  7. Install and run the toolkit in a dedicated virtual environment under a non-administrative account whenever possible.
  8. Require elevation only for the specific operations that need it, and do not run package installation with administrator privileges without a documented necessity.
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 (3)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill advertises global hotkey listening and GUI control over other applications without a clear privacy and safety notice. Because these capabilities can capture system-wide input events and manipulate unrelated windows, users may underestimate the sensitivity and potential for misuse, especially on shared or privileged Windows systems.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The manifest description is in English, but the substantive user-facing documentation and examples are primarily in Chinese. Under the policy rule, forcing a specific language without opt-in or justification is a natural-language policy concern because users are not offered a language choice or told that the skill is intentionally region-specific.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The documentation includes an example that programmatically closes another application's window but does not warn that this can forcibly terminate user workflows and may cause unsaved data loss. In a GUI automation skill, omission of this safety context increases the chance that users copy unsafe patterns into production or personal automation without adding confirmation or save checks.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.