Back to skill

Security audit

Convert Screenshot Any

Security checks for vulnerabilities and agentic risk

Overview

This skill is not clearly malicious, but its advertised screenshot-to-prompt purpose does not match its main instructions, which describe generic data conversion instead.

Review this skill carefully before installing. It appears to be a low-capability package with no persistence or network behavior, but its documentation is inconsistent enough that users may not get the screenshot-to-prompt behavior they expect. It should be corrected to either truly document and implement screenshot-prompt generation or be renamed and scoped as a generic data-conversion skill.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (14)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

A second, more severe description-behavior mismatch indicates the skill may perform repository/documentation validation, filesystem inspection, and secret scanning despite claiming to be a screenshot conversion skill. Hidden or undisclosed scanning behaviors are dangerous because they can lead to unauthorized inspection of local files and sensitive project contents under a misleading pretext.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

A second, more severe description-behavior mismatch indicates the skill may perform repository/documentation validation, filesystem inspection, and secret scanning despite claiming to be a screenshot conversion skill. Hidden or undisclosed scanning behaviors are dangerous because they can lead to unauthorized inspection of local files and sensitive project contents under a misleading pretext.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The body of the skill clearly documents a generic structured-data transformation workflow rather than the declared screenshot-to-prompt behavior. This kind of semantic mismatch is dangerous in agent systems because routing, trust, and user consent depend on accurate skill descriptions; a misleading skill can be invoked on sensitive inputs outside user expectations.

Content

No source excerpt is available for this finding.

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
88% confidence
Finding

The function directly incorporates attacker-controlled input (description[:200]) into the generated prompt without sanitization or structured extraction. In a skill whose purpose is to turn screenshots/descriptions into AI-generation prompts, this increases prompt-injection risk: a crafted description can steer downstream model behavior, override intended style constraints, or embed hidden instructions into the produced prompt.

Content

Scanner excerpt · scripts/describe.py (reported line 40)May include surrounding context.

python
style = description[:200]

    prompt = f"""A clean {layout} UI design with {', '.join(elements[:5])} if elements else 'modern interface elements'}, {style}"""
    return prompt

if __name__ == "__main__":
    if len(sys.argv) < 2:

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The file states 'Keep SKILL.md body in English,' which is a natural-language policy constraint forcing a specific language. This is reiterated later in the code standards, but no opt-in, alternative language path, or region-specific justification is provided.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The policy 'SKILL.md body must be in English; reference docs in English' imposes a language restriction in natural language. Under the stated policy criteria, forcing a specific language without user opt-in or clear justification is a violation.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

Line L13 states "When triggered: [trigger condition]." without defining any actual trigger phrase or boundary. This makes it unclear when the skill should activate and increases the risk of unintended invocation due to missing specificity.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The usage section includes --mode write --input ./data.json at L40, which suggests data-writing behavior, but the README provides no user-facing warning about possible file or data modification. For markdown files, operations that could affect user data should be disclosed clearly.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

Leaving the trigger condition as a placeholder makes activation criteria ambiguous, which is risky for agent-driven systems that rely on precise routing and capability descriptions. An imprecise trigger can cause the skill to be invoked in the wrong context, potentially processing unintended inputs or being chained into workflows it was not designed to handle.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The README presents generic read/write command examples that do not match the stated purpose of converting screenshots into image-generation prompts. This mismatch can mislead users or calling agents into invoking unsupported or unintended modes, increasing the chance of unsafe assumptions about file handling or data modification behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

Documenting a write mode without warning users about modification effects obscures the possibility of state changes or file output. In an agent context, unclear write semantics can lead to unintended overwrites, unsafe automation, or trust in behavior that has not been properly constrained or disclosed.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
77% confidence
Finding

The skill documentation indicates behavior consistent with reading input from files, but it does not declare any explicit tool scope or permissions. In agent environments, undeclared file access increases the risk of over-broad capability use and makes it harder to enforce least privilege or review what data the skill may access.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The activation condition is broad enough that the skill could be selected for many unrelated user requests. Over-broad matching increases the chance of accidental invocation, especially when combined with misleading documentation and undeclared capabilities, which can expose data or trigger behavior the user did not intend.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The module and function documentation say this code generates a detailed prompt from a screenshot description, but the f-string on L39 contains the literal text "if elements else 'modern interface elements'" inside the generated prompt rather than implementing that conditional behavior. This means the output does not match the documented intent of producing a sensible UI-description prompt.

Content

No source excerpt is available for this finding.