Back to skill

Security audit

Baoyu Infographic

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent infographic generator, but its fallback image-generation path can run unpinned or environment-selected code, so it should be reviewed before installation.

Install only if you are comfortable with a skill that stores working copies of your source material and images locally. Prefer native image-generation backends, avoid the npx -y bun fallback, and do not set BAOYU_CODEX_IMAGEGEN_BIN unless it points to a trusted, reviewed executable. Use project-local preferences rather than user-home preferences when 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 (2)

T08 · Insecure Dependencies

Error
Location
references/codex-imagegen.md:41
Finding

Unpinned Package Download and Execution Through npx

Content
View full analysis
/main.ts ...` works as a fallback. ``` ### Technical Analysis The documented fallback uses `npx` to retrieve and immediately execute the `bun` package when no trusted local Bun executable is available. The package is not pinned to an audited version, and the workflow does not specify a lockfile, checksum, package integrity value, trusted registry, or user confirmation. The `-y` option suppresses the normal installation confirmation. Consequently, package content resolved by the registry at execution time becomes part of the Skill's effective code even though that content was not included in the audited project. This creates a supply-chain risk: compromise of the package release, registry account, registry resolution path, or related dependency chain could cause arbitrary code to run under the Agent user's account. ### Attack Path 1. The Skill resolves image generation to the `codex-imagegen` fallback. 2. The preferred `baoyu-image-gen` integration is unavailable. 3. The runtime does not have a trusted `bun` executable installed. 4. The Agent follows the documented `npx -y bun` fallback. 5. `npx` retrieves the current, mutable package content from its configured registry without asking the user. 6. A compromised or malicious package version executes with the privileges of the Agent process. 7. The payload can access resources available to that account, including project files, user-readable configuration, environment variables, and network services. ### Impact Assessment Successful exploitation provides arbitrary code execution with the privileges of the account running the Agent. The affected scope can include: - Reading, modifying, or deleting files accessible to the Agent user. - Accessing environme ...[truncated 408 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
references/codex-imagegen.md:24
Finding

Arbitrary Executable Selection Through BAOYU_CODEX_IMAGEGEN_BIN

Content
View full analysis
`) or `.sh`/binary (spawn directly). ``` ### Technical Analysis The wrapper-discovery procedure permits the `BAOYU_CODEX_IMAGEGEN_BIN` environment variable to select a local file that will be executed. The only documented validation is that the path points to a real file. There are no requirements to validate: - The canonical path after resolving symbolic links. - File ownership or write permissions. - Whether the file is located in an approved installation directory. - A signature, checksum, or expected version. - Whether the user explicitly approved the selected executable. - Whether the environment variable originated from a trusted configuration source. Because shell scripts and binaries are spawned directly, an attacker who can influence the Agent's environment can redirect a legitimate-looking image-generation operation to attacker-controlled code. This is particularly dangerous in shared development environments, compromised launch scripts, malicious project automation, or CI jobs where environment variables may be injected. ### Attack Path 1. An attacker creates or modifies an executable file accessible to the Agent. 2. The attacker causes the Agent process to inherit `BAOYU_CODEX_IMAGEGEN_BIN` pointing to that file. 3. The runtime has no native `imagegen` skill, but the Codex CLI branch is selected. 4. The preferred `baoyu-image-gen` integration is unavailable, causing direct wrapper discovery. 5. The Skill accepts the environment-selected file because it exists. 6. If it is a shell script or binary, the Skill spawns it directly; if it is TypeScript, the Skill invokes it ...[truncated 971 chars]
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Rogue AgentSelf-Modification, Session Persistence
Findings (17)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
75% 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 · SKILL.md (reported line 86)May include surrounding context.

md
- Treat explicit skill invocation, a file path, a matched keyword shortcut, `EXTEND.md` defaults, and the documented default combination as **recommendation inputs only**. None of them authorizes skipping confirmation.
- Do **not** start Step 5 or Step 6 until the user confirms the combination/aspect/language/backend choices.
- Skip confirmation only when the current request explicitly says to do so, for example: `--no-confirm`, "直接生成", "不用确认", "跳过确认", "按默认出图", or equivalent wording.
- If confirmation is skipped explicitly, state the assumed combination/aspect/language/backend in the next user-facing update before generating.

## Options

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
75% 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 · SKILL.md (reported line 97)May include surrounding context.

md
- Treat explicit skill invocation, a file path, a matched keyword shortcut, `EXTEND.md` defaults, and the documented default combination as **recommendation inputs only**. None of them authorizes skipping confirmation.
- Do **not** start Step 5 or Step 6 until the user confirms the combination/aspect/language/backend choices.
- Skip confirmation only when the current request explicitly says to do so, for example: `--no-confirm`, "直接生成", "不用确认", "跳过确认", "按默认出图", or equivalent wording.
- If confirmation is skipped explicitly, state the assumed combination/aspect/language/backend in the next user-facing update before generating.

## Options

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
75% 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 · SKILL.md (reported line 269)May include surrounding context.

md
- Treat explicit skill invocation, a file path, a matched keyword shortcut, `EXTEND.md` defaults, and the documented default combination as **recommendation inputs only**. None of them authorizes skipping confirmation.
- Do **not** start Step 5 or Step 6 until the user confirms the combination/aspect/language/backend choices.
- Skip confirmation only when the current request explicitly says to do so, for example: `--no-confirm`, "直接生成", "不用确认", "跳过确认", "按默认出图", or equivalent wording.
- If confirmation is skipped explicitly, state the assumed combination/aspect/language/backend in the next user-facing update before generating.

## Options

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 227)May include surrounding context.

md
| Not found | Ask the user with `AskUserQuestion` (see `references/config/first-time-setup.md`) |

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The trigger phrases include broad terms such as "visual summary" and "可视化", which can match many ordinary requests outside the intended scope of infographic generation. Over-broad activation can cause the skill to engage unexpectedly, leading the agent to copy user content to local directories, create prompt artifacts, and invoke image-generation workflows when the user did not clearly intend that behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill explicitly copies source content and reference images into output directories and creates backups, but the description does not warn users of this local data replication. This creates a privacy and data-handling risk because sensitive pasted content or proprietary images may be persisted multiple times on disk without the user's informed consent.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
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.

Content

Scanner excerpt · SKILL.md (reported line 86)May include surrounding context.

md
- Treat explicit skill invocation, a file path, a matched keyword shortcut, `EXTEND.md` defaults, and the documented default combination as **recommendation inputs only**. None of them authorizes skipping confirmation.
- Do **not** start Step 5 or Step 6 until the user confirms the combination/aspect/language/backend choices.
- Skip confirmation only when the current request explicitly says to do so, for example: `--no-confirm`, "直接生成", "不用确认", "跳过确认", "按默认出图", or equivalent wording.
- If confirmation is skipped explicitly, state the assumed combination/aspect/language/backend in the next user-facing update before generating.

## Options

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
65% 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.

Content

Scanner excerpt · SKILL.md (reported line 86)May include surrounding context.

md
- Treat explicit skill invocation, a file path, a matched keyword shortcut, `EXTEND.md` defaults, and the documented default combination as **recommendation inputs only**. None of them authorizes skipping confirmation.
- Do **not** start Step 5 or Step 6 until the user confirms the combination/aspect/language/backend choices.
- Skip confirmation only when the current request explicitly says to do so, for example: `--no-confirm`, "直接生成", "不用确认", "跳过确认", "按默认出图", or equivalent wording.
- If confirmation is skipped explicitly, state the assumed combination/aspect/language/backend in the next user-facing update before generating.

## Options

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
65% 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.

Content

Scanner excerpt · SKILL.md (reported line 97)May include surrounding context.

md
- Treat explicit skill invocation, a file path, a matched keyword shortcut, `EXTEND.md` defaults, and the documented default combination as **recommendation inputs only**. None of them authorizes skipping confirmation.
- Do **not** start Step 5 or Step 6 until the user confirms the combination/aspect/language/backend choices.
- Skip confirmation only when the current request explicitly says to do so, for example: `--no-confirm`, "直接生成", "不用确认", "跳过确认", "按默认出图", or equivalent wording.
- If confirmation is skipped explicitly, state the assumed combination/aspect/language/backend in the next user-facing update before generating.

## Options

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
65% 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.

Content

Scanner excerpt · SKILL.md (reported line 269)May include surrounding context.

md
- Treat explicit skill invocation, a file path, a matched keyword shortcut, `EXTEND.md` defaults, and the documented default combination as **recommendation inputs only**. None of them authorizes skipping confirmation.
- Do **not** start Step 5 or Step 6 until the user confirms the combination/aspect/language/backend choices.
- Skip confirmation only when the current request explicitly says to do so, for example: `--no-confirm`, "直接生成", "不用确认", "跳过确认", "按默认出图", or equivalent wording.
- If confirmation is skipped explicitly, state the assumed combination/aspect/language/backend in the next user-facing update before generating.

## Options

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% 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.

Content

Scanner excerpt · SKILL.md (reported line 97)May include surrounding context.

md
| `--style` | 22 options (see Style Gallery), default: craft-handmade |
| `--aspect` | Named: landscape (16:9), portrait (9:16), square (1:1). Custom: any W:H ratio (e.g., 3:4, 4:3, 2.35:1) |
| `--lang` | en, zh, ja, etc. |
| `--no-confirm` | Skip Step 4 only when the user explicitly requests direct generation without confirmation |
| `--ref <files...>` | Reference images (file paths) for style / palette / composition / subject guidance |

## Layout Gallery (21)

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The document recommends npx -y bun as a fallback without pinning a specific version or integrity-verified source. That allows execution of whatever bun package version is current in the registry at runtime, creating a supply-chain risk if the package is compromised, typosquatted, or changed unexpectedly. In this skill context, the command is presented as operational guidance for agents handling image generation, so the unsafe fallback is more dangerous because it may be copied or automated directly into execution paths.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
91% confidence
Finding

The setup flow instructs the agent to persist user preferences by creating an EXTEND.md file in either a project directory or the user's home directory. Persisting data across sessions is a real security/privacy concern because it can retain user choices beyond the current task and, when written to a global path, can affect future runs in unrelated projects.

Content

Scanner excerpt · references/config/first-time-setup.md (reported line 32)May include surrounding context.

md
│
        ▼
┌─────────────────────┐
│ Create EXTEND.md    │
└─────────────────────┘
        │
        ▼

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The instruction mandates that all text content use the specified language, and similar language appears again in the text-label section. Under the policy criteria, forcing a language/locale without explicit user opt-in can be a natural-language policy violation unless the constraint is clearly justified or optional.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The markdown includes example preference files that explicitly set language: zh, which can encourage a fixed-language default without indicating user choice or opt-in. Under the stated policy, forcing a specific language is a violation unless the skill offers a language choice or clearly justifies the locale constraint.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The text placement guidance specifies a subtitle example in Chinese ("X大维度全面解析...") without offering language choice or explaining that the layout is intended only for Chinese-language content. This can be read as prescribing a specific language/locale, which conflicts with the policy against forcing a language without user opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

Line L31 states that decorative all-caps English is allowed for filenames, status strings, and button labels. This introduces a language constraint in the style guidance without explicitly offering user choice or opt-in, which can conflict with language/locale policy expectations.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.