Back to skill

Security audit

将 Markdown 文档转换为精美 PNG 图片。当用户要求将 markdown 文件、markdown 文本转成图片、截图、png 时触发。支持多种主题(note/dark/sakura/ocean/tech 等)和尺寸(mobile/tablet/laptop/desktop

Security checks for vulnerabilities and agentic risk

Overview

The skill has a coherent Markdown-to-PNG purpose, but its Bash-based conversion instructions leave real command-injection and file-overwrite risks around user-controlled filenames and temporary files.

Review before installing. Use this only in trusted working directories, avoid unusual Markdown filenames, and prefer a revised version that invokes the converter with safely quoted arguments or an argument-array API, uses unique temporary files, and avoids global npm installation where possible.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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 (3)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:29
Finding

Shell Command Injection Through Insufficiently Validated Input Paths

Content
View full analysis
-t -s -o - If the input is a file path, pass it directly after validation. ``` ### Technical Analysis The validation described for an input file path only prevents absolute paths and directory traversal. It does not require shell-safe characters or reject command substitutions, shell metacharacters, whitespace, control characters, or leading option characters. The validated path is subsequently inserted into a Bash command. If the Agent constructs that command through string interpolation rather than passing arguments directly to a process API, the shell can interpret characters embedded in a valid current-directory filename. For example, a filename containing shell syntax may satisfy the documented location requirements while still modifying the command structure. A leading `-` may also be interpreted as a command-line option by the converter rather than as a positional filename. ### Attack Path 1. An attacker creates a Markdown file in the current working directory with shell syntax or option-like content in its filename. 2. The attacker asks the Agent to convert that file. 3. The file passes the documented checks because it is relative, exists in the current directory, and contains no prohibited traversal sequence. 4. The Agent substitutes the filename into the documented Bash command. 5. Bash interprets the embedded shell syntax. 6. Attacker-controlled commands execute with the same operating-system privileges as the Agent process. ### Impact Assessment Successful exploitation can provide ar ...[truncated 407 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
SKILL.md:44
Finding

Execution of an Unverified Globally Installed npm Dependency

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:57
Finding

Predictable Temporary Filename Enables Overwrite and Symlink Attacks

Content
View full analysis
Remediation
View remediation
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 (1)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The manifest description and user-facing documentation are entirely in Chinese, indicating the skill is designed to operate in a fixed language without stating any user opt-in or offering an alternative locale. Under the policy, forcing a specific language without user choice is a natural-language policy violation unless clearly justified as region-specific.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.