Back to skill

Security audit

Image Breaker

Security checks for vulnerabilities and agentic risk

Overview

The skill’s note-making purpose is coherent, but it defaults to persisting and syncing potentially sensitive documents to a hardcoded Obsidian location without clear per-run consent.

Review this skill before installing. Use it only if you are comfortable with extracted content being written to local markdown files and synced to an Obsidian vault, and update or remove the hardcoded vault path before use. Require explicit confirmation before processing medical, financial, business, or private documents.

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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • 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 (8)

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The documented behavior does not match the implemented behavior: the skill claims generic extraction and safe note handling, but the actionable path includes a hardcoded sync target and lacks real extraction/saving safeguards. Description-behavior mismatches are dangerous because reviewers and users may grant trust based on stated purpose while hidden or underspecified behaviors move data to unintended locations.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding

The skill instructs file writing and shell execution but declares no explicit tool scope or permission boundaries. That makes the effective capability set ambiguous and increases the chance an agent can write arbitrary files or invoke subprocesses without clear user consent or enforcement.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill defaults to saving extracted content locally and auto-syncing it to Obsidian without disclosing privacy implications. Since the content may include sensitive documents, lab results, screenshots, or business materials, silent persistence and sync can cause unintentional exposure or retention of confidential data.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill directs execution of an external Python script via shell, which expands the attack surface beyond simple content transformation. Any subprocess call can introduce command injection risk, unreviewed script behavior, environment abuse, or unintended file/network access, especially when paired with user-influenced file paths.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The module docstring and usage examples present this script as converting URLs, PDFs, and images into structured markdown notes. In actual code, main() only parses arguments and prints messages, while no extraction, note creation, saving, or syncing is invoked; extract_url_content() is a placeholder that returns a comment string.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The extract_url_content docstring states it extracts content from a URL and returns markdown content. The implementation explicitly does not do that and instead returns a placeholder string, directly contradicting the documented behavior.

Content

No source excerpt is available for this finding.

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
70% confidence
Finding

subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Content

Scanner excerpt · scripts/break_image.py (reported line 126)May include surrounding context.

python
subfolder
    ]
    
    result = subprocess.run(cmd, capture_output=True, text=True)
    
    if result.returncode == 0:
        print(f"\n✅ Synced to Obsidian: {subfolder}/{filepath.name}")

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The skill tells the agent to fetch user-provided URLs but does not warn that this causes outbound requests to third-party servers. This can leak user interest, internal URLs, or tracking metadata, and can be more serious if users provide private or intranet links.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.