Back to skill

Security audit

Poetry Daily Art

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its poetry-card purpose, but it also uses undocumented agent memory and can automatically send generated content externally, so it should be reviewed before installation.

Install only if you are comfortable with a MiniMax-backed image workflow that may send poem titles or memory-derived text to an external service and post results to Telegram. Configure any cron job and chat destination explicitly, avoid using a shared output directory, and prefer a pinned/local MiniMax CLI install before running it.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
Findings (3)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
scripts/generate_image.sh:23
Finding

Undocumented Access to Agent Memory Files

Content
View full analysis
/dev/null | head -1) if [ -n "$LATEST_MEMORY" ]; then POEM_TITLE=$(grep -oE '《[^》]+》' "$LATEST_MEMORY" | tail -1 | tr -d '《》' || echo "") fi fi ``` ### Technical Analysis When the progress file does not provide a poem title, the script enumerates the Agent's memory directory, selects the most recently modified Markdown file, and reads content matching book-title delimiters. This fallback is not declared in the `SKILL.md` data-source section, which identifies the progress JSON and poem archive as the expected sources. Reading the general memory directory exceeds the minimum data access necessary for image generation. Although the extraction pattern limits the text selected, any matching content from an unrelated memory record can become `POEM_TITLE`. That value is subsequently embedded in the image prompt passed to the externally connected `mmx` CLI. ### Attack Path 1. The expected progress JSON is missing, unreadable, empty, or contains no usable final `studied` entry. 2. An unrelated or attacker-influenced Markdown file becomes the newest file in the Agent memory directory. 3. The file contains text enclosed by `《` and `》`. 4. The script extracts the last matching value and treats it as the poem title. 5. The extracted value is inserted into the image-generation prompt. 6. The `mmx image` command submits that prompt to the configured MiniMax service. ### Impact Assessment The script can read information from unrelated Agent memory without explicit user authorization or documentation. The exposed scope is restricted to the final substring matching the extraction pattern, rather than the complete memory file, but tha ...[truncated 284 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
SKILL.md:32
Finding

Unpinned Global Installation of a Third-Party CLI

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
scripts/generate_image.sh:49
Finding

Broad Destructive Cleanup in a Shared Hard-Coded Directory

Content
View full analysis
/dev/null ``` ### Technical Analysis Each execution deletes every JPEG or PNG whose name begins with `image_` in a fixed workspace directory. The cleanup is not limited to files created by the current process or by a previous execution of this specific Skill. If the directory is shared with another process, concurrent task, or user workflow, unrelated files matching these patterns are deleted. The hard-coded user-specific path also reduces portability and makes it more likely that multiple tasks will reuse the same shared directory. The script does quote the variable portion of the path, so ordinary whitespace expansion is controlled. The primary problem is the breadth of the wildcard deletion and the absence of per-run directory isolation or ownership tracking. ### Attack Path 1. Another workflow or user places a file such as `image_report.jpg` in the fixed output directory. 2. The Skill starts an image-generation run. 3. The wildcard cleanup expands to all matching `image_*.jpg` and `image_*.png` files. 4. The unrelated files are deleted before the image-generation command runs. 5. Because `rm -f` is used, no confirmation is requested and missing-file errors are suppressed. ### Impact Assessment The issue can cause permanent deletion of unrelated image files accessible to the invoking user within the configured output directory. It does not directly permit deletion outside that directory under the current fixed assignment, and it does not provide privilege escalation. The practical scope depends on whether other workflows share the directory and whether matching files ...[truncated 132 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (9)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · scripts/generate_image.sh (reported line 46)May include surrounding context.

sh
echo "生成图片中..."

# 清理旧图片避免混淆
rm -f "$OUTPUT_DIR"/image_*.jpg "$OUTPUT_DIR"/image_*.png 2>/dev/null

cd "$OUTPUT_DIR"
mmx image "$PROMPT" --aspect-ratio 9:16 --non-interactive 2>&1

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The manifest includes broad trigger phrases such as generic requests for poetry illustration or daily poem images, which can cause the skill to activate in situations the user did not clearly intend. Because the skill can generate content and deliver it via message tooling, ambiguous activation increases the risk of unwanted actions and unintended outbound communication.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The description specifies generating Chinese classical poetry art cards and includes fixed Chinese trigger phrases and output framing, while the caption format later hard-codes Chinese wording. There is no indication that users may opt into another language or that the Chinese-only locale is a documented requirement.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill description does not clearly warn that it can automatically send generated content to Telegram via cron or the message tool. Users or operators may believe this is a local content-generation skill, while it actually performs outbound delivery, creating consent, privacy, and surprise-action risks.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill omits a warning that image generation depends on the external MiniMax service and that poem/title prompt content is sent to a third party through the mmx CLI. This can expose user or internal content to an external processor without clear disclosure, and also introduces operational risk around secret management for the API key.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The script falls back to reading the latest file in a general workspace memory directory and scraping poem-like text from it, which expands data access beyond the stated purpose of generating art from poem study progress. This can expose unrelated user content or sensitive notes to the skill and may cause unintended data use in the generated prompt.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The script unconditionally deletes matching image files in the output directory before generating a new one, with no confirmation or retention policy. This can destroy prior outputs unexpectedly and may erase user data if the directory contains files the user wanted to keep.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The script sends the constructed prompt to an external image-generation tool in non-interactive mode without disclosing that data will leave the local environment. Because the prompt is derived from local files, this can transmit user-derived content to a third-party service without informed consent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

The comments and user-facing output are written in Chinese, and the script is explicitly framed around generating imagery for Chinese poetry without indicating any language or locale choice. Under the policy, forcing a specific language without user opt-in can be a natural-language policy concern.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.