Back to skill

Security audit

Baoyu Comic

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a coherent comic-generation workflow, but it can run an unpinned downloaded Bun runtime through npx during normal execution, which users should review before installing.

Review the runtime behavior before installing. Prefer using a trusted local Bun installation, or ask the publisher to pin the npx fallback and dependencies. Also be aware that the ohmsha preset can generate Doraemon-derived characters by default, and that choosing user-scope preferences stores EXTEND.md under your home directory for future projects.

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:114
Finding
Unpinned Runtime Download and Execution via npx<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 114-118 **Vulnerability Type**: Unpinned third-party runtime execution **Risk Level**: Medium ### Vulnerable Code ```markdown **Agent Execution Instructions**: 1. Determine this SKILL.md file's directory path as `{baseDir}` 2. Script path = `{baseDir}/scripts/<script-name>.ts` 3. Replace all `{baseDir}` in this document with the actual path 4. Resolve `${BUN_X}` runtime: if `bun` installed → `bun`; if `npx` available → `npx -y bun`; else suggest installing bun ``` ### Technical Analysis The fallback instruction uses `npx -y bun` without specifying an exact package version or validating package integrity. The `-y` option automatically accepts installation and execution, allowing npm to resolve and run the package without additional user confirmation. Consequently, the effective runtime may differ from the version reviewed or previously used. If the upstream package, one of its dependencies, the package registry, or local npm configuration is compromised, attacker-controlled code could run as part of the PDF-generation workflow. The project also imports `pdf-lib` in `scripts/merge-to-pdf.ts`, but the audited directory contains no dependency manifest or committed lockfile. Dependency resolution is therefore not reproducible or integrity-locked within this package. ### Attack Path 1. The user invokes the comic-generation workflow. 2. The workflow reaches the PDF merge stage. 3. A trusted local `bun` executable is unavailable, while `npx` is installed. 4. The Agent follows `SKILL.md` and executes `npx -y bun`. 5. npm resolves and downloads the currently available package and its dependency graph. 6. A compromised or unexpectedly replaced package executes in the Agent's process context. 7. Malicious package code can access resources available to the current operating-system account. This path requires compromise or malicious substitution in the external package supply chain; no evidence ...[truncated 795 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove the automatic floating-version fallback: ```markdown If Bun is unavailable, stop and ask the user to install the approved Bun version. ``` 2. If `npx` must be supported, pin an explicitly reviewed version: ```bash npx -y bun@<approved-exact-version> ``` 3. Prefer a trusted, preinstalled Bun executable and verify its version before execution: ```bash bun --version ``` 4. Add a `package.json` declaring exact or tightly constrained dependencies, including `pdf-lib`. 5. Commit the corresponding lockfile and require frozen-lockfile installation so dependency resolution cannot change silently. 6. Where supported, verify package integrity, registry configuration, and provenance before executing downloaded tooling. 7. Avoid unattended package installation during normal Skill execution. Dependency installation should be a separate, explicit setup operation with user approval. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
Findings (29)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
The declared description says the skill creates original educational/knowledge comics with panel layouts and sequential image generation. The supplied code does not perform any comic generation, layout planning, style control, or educational content creation. Instead, it is a local filesystem CLI tool that finds existing image files matching comic page naming conventions and combines them into a PDF. While this may be part of a comic production pipeline, the primary behavior in this code chunk is PDF assembly from existing files, which is materially different from the declared end-user purpose.

Ae1

High
Category
analysis-evasion
Content
- Read that skill's `SKILL.md` and follow its documented interface rather than calling its scripts directly
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Direct Prompt Extraction

High
Category
System Prompt Leakage
Content
**Purpose**: User reviews and confirms prompts before image generation.

**Display prompt summary table**:

| Page | Title | Key Elements |
|------|-------|--------------|
Confidence
85% confidence
Finding
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
| Option | Description |
|--------|-------------|
| `--storyboard-only` | Generate storyboard only, skip prompts and images |
| `--prompts-only` | Generate storyboard + prompts, skip images |
| `--images-only` | Generate images from existing prompts directory |
| `--regenerate N` | Regenerate specific page(s) only (e.g., `3` or `2,5,8`) |
Confidence
85% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
| Option | Description |
|--------|-------------|
| `--storyboard-only` | Generate storyboard only, skip prompts and images |
| `--prompts-only` | Generate storyboard + prompts, skip images |
| `--images-only` | Generate images from existing prompts directory |
| `--regenerate N` | Regenerate specific page(s) only (e.g., `3` or `2,5,8`) |
Confidence
85% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
| Option | Description |
|--------|-------------|
| `--storyboard-only` | Generate storyboard only, skip prompts and images |
| `--prompts-only` | Generate storyboard + prompts, skip images |
| `--images-only` | Generate images from existing prompts directory |
| `--regenerate N` | Regenerate specific page(s) only (e.g., `3` or `2,5,8`) |
Confidence
85% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The skill instructs resolving the runtime with `npx -y bun`, which fetches and executes a package without pinning a specific version. This creates a supply-chain risk: a compromised upstream package, typosquat, or unexpected new release could change execution behavior at runtime and run unreviewed code on the user's system.

Natural-Language Policy Violations

Medium
Confidence
89% confidence
Finding
The example sets `user_language: zh` with the note 'From EXTEND.md or detected', which implies the skill may choose a user-facing output language automatically rather than requiring explicit user selection. This can violate language/locale policy expectations when a specific language is imposed without opt-in or a clearly documented regional justification.

Natural-Language Policy Violations

Medium
Confidence
97% confidence
Finding
The prompt hard-codes Chinese as the output language unless the source material is in another language, which overrides user language preference and reduces user control. While not a classic security exploit, it is a genuine policy and prompt-safety issue because a skill can silently steer outputs into a language the user did not request, causing confusion, misdelivery, or downstream misuse in multilingual workflows.

Session Persistence

Medium
Category
Rogue Agent
Content
│
        ▼
┌─────────────────────┐
│ Create EXTEND.md    │
└─────────────────────┘
        │
        ▼
Confidence
85% confidence
Finding
The setup flow instructs the agent to persist user preferences by creating an EXTEND.md file, including an option to save under the user home directory for reuse across projects. This creates session persistence outside the immediate interaction scope, which can unintentionally retain user-provided data and influence future runs across unrelated contexts.

Description-Behavior Mismatch

Medium
Confidence
97% confidence
Finding
The preset hard-codes Doraemon characters as the default output, which conflicts with the skill's stated purpose of creating original educational comics and can cause the agent to generate copyrighted derivative content without explicit user request. In a content-generation skill, this is a real policy and legal risk because users may unknowingly receive infringing character depictions as the standard behavior.

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
The preset imposes a specific cultural and character default ('use Doraemon characters') without prior user opt-in, which can override user expectations and reduce neutrality in generated content. While not directly a security exploit, it is a genuine safety and product-quality issue because it silently constrains outputs toward a copyrighted, culturally specific template.

YARA rule 'network_reconnaissance': Network reconnaissance and scanning patterns [hacktools]

Medium
Category
YARA Match
Content
Type | Visual Treatment |
|-------------|-----------------|
| Internal qi | Glowing aura around character |
| External qi | Visible energy projection |
| Qi clash | Radiating impact waves |
| Qi absorption | Flowing particles toward character |
| Hidden power | Subtle glow in eyes/fists |

### Energy Colors

| Qi Type | Color |
|---------|-------|
| Righteous | Blue (#4299E1), Gold (#FFD700) |
| Fierce | Red (#DC2626), Orange (#EA580C) |
| Evil | Purple (#7C3AED), Green (#16A34A) |
| Pure | White, Silver |
| Ancient | Gold with particles |

### Combat Visual Language

**Impact moments** must include:

1. Speed lines radiating from impact point
2. Flying debris (stone, wood, cloth)
3. Shockwave rings
4. Dust/energy clouds
5. Hair and clothing blown back

### Movement Depiction

| Speed Level | Visual Treatment |
|-------------|-----------------|
| Normal | Standard pose |
| Fast | Motion blur, speed lines |
| Lightning | Afterimages, multiple positions |
| Teleport | Fade effect, parti
Confidence
65% confidence
Finding
YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

YARA rule 'network_reconnaissance': Network reconnaissance and scanning patterns [hacktools]

Medium
Category
YARA Match
Content
Type | Visual Treatment |
|-------------|-----------------|
| Internal qi | Glowing aura around character |
| External qi | Visible energy projection |
| Qi clash | Radiating impact waves |
| Qi absorption | Flowing particles toward character |
| Hidden power | Subtle glow in eyes/fists |

### Energy Colors

| Qi Type | Color |
|---------|-------|
| Righteous | Blue (#4299E1), Gold (#FFD700) |
| Fierce | Red (#DC2626), Orange (#EA580C) |
| Evil | Purple (#7C3AED), Green (#16A34A) |
| Pure | White, Silver |
| Ancient | Gold with particles |

### Combat Visual Language

**Impact moments** must include:

1. Speed lines radiating from impact point
2. Flying debris (stone, wood, cloth)
3. Shockwave rings
4. Dust/energy clouds
5. Hair and clothing blown back

### Movement Depiction

| Speed Level | Visual Treatment |
|-------------|-----------------|
| Normal | Standard pose |
| Fast | Motion blur, speed lines |
| Lightning | Afterimages, multiple positions |
| Teleport | Fade effect, parti
Confidence
65% confidence
Finding
YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Ssd 3

Medium
Confidence
93% confidence
Finding
The workflow requires echoing the full local configuration path and preference contents back to the user. Full paths can expose usernames, directory layouts, or environment conventions, and preference summaries may disclose sensitive local configuration details unnecessarily.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The workflow directs creation of a persistent EXTEND.md preferences file in project or home-scoped directories without an explicit safety warning about writing to those locations. This can unexpectedly store user preferences or potentially sensitive metadata in shared or version-controlled paths.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The workflow saves pasted content to local files and renames existing files as backups without an explicit user-facing warning or confirmation at the point of modification. That can cause unintended persistence of sensitive user content on disk and unexpected modification of existing project files.

Context-Inappropriate Capability

Medium
Confidence
94% confidence
Finding
The workflow explicitly instructs use of canonical Doraemon characters for an educational-comic preset despite the skill claiming to create original comics. This creates an IP/compliance risk and can also mislead users into generating derivative content they may not have rights to use or distribute.

Natural-Language Policy Violations

Low
Confidence
80% confidence
Finding
The file uses a Chinese title/label ('水墨画风') as part of the skill description without any indication that users can choose their preferred language or locale. Under the policy rule for language/locale, this can be interpreted as imposing a specific language presentation rather than offering an opt-in or alternative.

Natural-Language Policy Violations

Low
Confidence
85% confidence
Finding
The line introduces the style using Chinese text ('写实画风') alongside English content, which suggests a language-specific convention in an otherwise English file. There is no indication that the skill is region-specific or that users can choose their preferred language, so this may violate language/locale policy guidance.

Natural-Language Policy Violations

Low
Confidence
86% confidence
Finding
This markdown schema includes an example setting `language: zh`, which specifies a fixed output language. Under the policy for natural-language constraints, forcing a specific language without explicit user choice or region-specific justification can be a policy concern, especially in example configurations that users may copy directly.

Natural-Language Policy Violations

Low
Confidence
88% confidence
Finding
This markdown file contains a Chinese title/descriptor line ('少女预设') mixed into an otherwise English skill description, which imposes a specific language presentation without any user opt-in or explanation. The policy for natural-language violations applies to all file types and covers language or locale constraints that are not optional or justified.

Natural-Language Policy Violations

Low
Confidence
76% confidence
Finding
The quality marker requires 'Atmospheric backgrounds with Chinese elements' as a mandatory characteristic of the preset output. This is a natural-language locale/cultural constraint presented as unconditional, without offering the user a choice or documenting a justified region-specific limitation.

Natural-Language Policy Violations

Low
Confidence
76% confidence
Finding
The template includes `language: "[zh/en/ja/etc.]"` as a required field but does not explain that the language should be selected based on user preference. This can encourage skills built from the template to force a locale or language choice without explicit user opt-in.

Natural-Language Policy Violations

Low
Confidence
90% confidence
Finding
Line L03 includes a Chinese-language descriptor ("戏剧基调") while the rest of the file is in English, with no indication that language selection is optional or user-configurable. This can violate language/locale policy when a skill or reference enforces a language without explicit opt-in.

Static analysis

No suspicious patterns detected.