Back to skill

Security audit

Screenshot Skill

Security checks for vulnerabilities and agentic risk

Overview

This skill does what it claims, but it can capture and export sensitive screen contents without enough built-in warning or confirmation guidance.

Install only if you are comfortable giving the skill access to whatever is visible on your desktop. Before using it, close or crop out passwords, chats, customer data, financial data, and internal documents; avoid printing base64 screenshots into logs; use region capture where possible; and pin reviewed dependency versions in a virtual environment.

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:14
Finding

Unpinned Third-Party Dependencies Permit Unreviewed Package Code Execution

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 14-16
Vulnerability Type: Unpinned third-party dependency installation
Risk Level: Medium

Vulnerable Code

bash
uv add mss pillow
# or
pip install mss pillow

Technical Analysis

The documented installation commands resolve and install the latest compatible releases of mss, pillow, and their applicable dependency chains without version constraints, integrity hashes, or a committed lockfile.

Python package installation can execute package-controlled build or installation logic. Because the selected artifacts may change after this Skill has been reviewed, users cannot reliably reproduce the audited dependency set. A compromised package release, compromised package index, dependency confusion condition, or later vulnerable release could introduce code that was not present during the Skill audit.

No evidence indicates that the named packages are currently malicious. The risk arises from unconstrained future dependency resolution rather than from confirmed malicious behavior in the project.

Attack Path

  1. An attacker compromises a relevant package release, dependency, maintainer account, or configured package source.
  2. The attacker publishes a malicious or backdoored version that satisfies the unconstrained package request.
  3. A user follows the documented uv add mss pillow or pip install mss pillow instructions.
  4. The package manager resolves the attacker-controlled artifact because no reviewed version or hash is required.
  5. Malicious package code executes during installation, build, or subsequent import with the privileges of the installing user.

Impact Assessment

Successful exploitation could execute arbitrary code under the installing user's account. Depending on that account's permissions, an attacker could read or modify accessible files, capture sensitive desktop content, access user-level credentials, install ...[truncated 558 chars]

Remediation
View remediation

Remediation Suggestions

  1. Pin every direct dependency to a reviewed version rather than resolving an unrestricted latest release.
  2. Commit a dependency lockfile that includes the complete transitive dependency graph.
  3. Require cryptographic hashes for downloaded artifacts, such as through a hash-locked requirements file and pip install --require-hashes.
  4. Install only from an explicitly configured, trusted package index; disable unintended fallback indexes where dependency confusion is possible.
  5. Prefer prebuilt wheels from trusted sources and prevent unexpected source builds in controlled deployments.
  6. Run dependency vulnerability and provenance scanning in CI, and review dependency updates before modifying the lockfile.
  7. Perform installation and execution in a least-privileged virtual environment or sandbox without administrator rights.
  8. Document the supported Python version and platform so dependency resolution remains reproducible.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (9)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill explicitly supports capturing screenshots and providing them to AI vision APIs, but the top-level description does not warn that screenshots may contain passwords, personal messages, financial data, or other confidential information. Because screen capture is inherently privacy-sensitive, omitting a warning materially raises the chance of accidental collection and disclosure.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The example shows converting a screenshot to base64 and sending it to the OpenAI vision API, but it does not warn that this exports the entire captured screen to a third-party service. In context, this is especially dangerous because screenshots can include secrets, tokens, emails, customer data, or other regulated information, making accidental exfiltration plausible.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

Describing base64 screenshots as suitable for direct embedding in API requests encourages transmission of full screen contents to external services without warning about exfiltration risks. In an AI-agent setting, this is especially dangerous because captured images may include credentials, regulated data, private conversations, or internal documents that leave the local machine once sent to remote APIs.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill description includes broad activation phrases such as taking screenshots, capturing screen content, getting screen info, and supplying images for vision APIs. This can cause the skill to trigger on common user requests and perform highly privacy-sensitive actions without sufficiently explicit scoping or confirmation, increasing the risk of unintended screen capture.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

Most of the instructional content and examples are written in Chinese, while the file does not indicate that the skill is region-specific or provide an opt-in language choice. This can violate language/locale policy when a specific language is effectively forced without user selection.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documentation explicitly supports screenshot capture and automatic saving to disk but provides no warning that screenshots may contain passwords, personal data, secrets, or other sensitive on-screen content. In an agent skill context, normalizing silent capture and persistence increases the risk of privacy-invasive collection and unintended local data retention.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The CLI exposes straightforward commands to capture screenshots to files or print base64 to stdout, yet omits warnings about persistence, terminal/log leakage, and accidental disclosure of sensitive screen content. This can lead users or higher-level automation to store screenshots in predictable locations or leak encoded images into shell history, logs, CI output, or other monitoring systems.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This tool captures arbitrary screen contents and can save them to disk or emit them as base64 without any built-in privacy notice, confirmation, or scope limitation. In an agent/tooling context, that increases the risk of collecting secrets, personal data, or regulated information from the desktop with little user awareness, especially because full-screen and multi-monitor capture are supported.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The file's main natural-language documentation, comments, and several user-visible error/help strings are written in Chinese, while the tool also exposes English CLI descriptions. This creates a mixed-language experience that effectively forces a locale for key instructions and errors without documenting that constraint or offering a user choice.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.