Back to skill

Security audit

元造 yotta-skill-creator

Security checks for vulnerabilities and agentic risk

Overview

The skill is mainly a scaffold generator, but its bundled installers can persist the skill into many agents' skill directories without confirmation.

Review the installer behavior before installing. Prefer a specific --agent or --dir target, avoid -g/--global unless you truly want this skill installed for every listed agent, and consider pinning the npm version. Also note that the packaged full scaffold appears incomplete because required hidden template files are absent, so full-mode creation may fail self-check until the package is fixed.

Vulnerability Patterns
  • 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
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (56)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding
The skill is described as a generator, yet the behavior includes installer CLI modes like agent targeting, global install, directory installation, and path enumeration. Deployment behavior to user/project skill locations is materially more sensitive than local scaffold creation because it can modify runtime-discovered integration points and affect multiple agents or projects.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding
The skill is described as a generator, yet the behavior includes installer CLI modes like agent targeting, global install, directory installation, and path enumeration. Deployment behavior to user/project skill locations is materially more sensitive than local scaffold creation because it can modify runtime-discovered integration points and affect multiple agents or projects.

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding
The skill is described as a generator, yet the behavior includes installer CLI modes like agent targeting, global install, directory installation, and path enumeration. Deployment behavior to user/project skill locations is materially more sensitive than local scaffold creation because it can modify runtime-discovered integration points and affect multiple agents or projects.

Self-Modification

High
Category
Rogue Agent
Content
{
  "name": "@yottameta/yotta-skill-creator",
  "version": "0.1.0",
  "description": "YuanZao (元造) — a zero-dependency Python 3.8+ skill scaffold generator: validates naming (yotta- prefix / lowercase-hyphen / YuanX Chinese name / non-overwrite), renders a full release-compliant scaffold from an embedded template (SKILL.md, bilingual four-way-install README, package.json, CHANGELOG, LICENSE, NOTICE, install.sh + bin/install.js, .gitignore, .npmignore, publish.yml, references, assets), replaces placeholders and runs a structure self-check; --self-use mode generates only the skill body (SKILL.md / references / optional CLI) without any release artifacts. Triggers: creating a new yotta- skill, scaffolding a skill from scratch, or fixing release-standard pitfalls into a reusable template; or when the user says 元造 / 造技能 / 脚手架 / scaffold / 新建技能. Boundaries: it does not write skill content or script logic (SKILL.md body / scripts need manual development), does not pre-publish validate or release (that is yotta-publish-guard), and does not batch-migrate existing skill directories.",
  "license": "MIT",
  "keywords": [
    "agent-skills",
Confidence
85% confidence
Finding
Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
install_to() {
  mkdir -p "$1/$SKILL_NAME"
  cp -r "$SOURCE_DIR/." "$1/$SKILL_NAME/"
  rm -rf "$1/$SKILL_NAME/.git"
  echo "installed -> $1/$SKILL_NAME"
}
Confidence
95% confidence
Finding
The install_to function performs recursive copy and then unconditionally executes rm -rf on a path derived from user-controlled installation input and a template-expanded skill name. If the destination path or generated skill name is malformed, empty, or unexpectedly resolves to a sensitive location, this can delete unintended directories or files; using rm -rf in installation scripts materially increases damage potential from path handling mistakes.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
install_to() {
  mkdir -p "$1/$SKILL_NAME"
  cp -r "$SOURCE_DIR/." "$1/$SKILL_NAME/"
  rm -rf "$1/$SKILL_NAME/.git"
  echo "installed -> $1/$SKILL_NAME"
}
Confidence
95% confidence
Finding
The install_to function performs recursive copy and then unconditionally executes rm -rf on a path derived from user-controlled installation input and a template-expanded skill name. If the destination path or generated skill name is malformed, empty, or unexpectedly resolves to a sensitive location, this can delete unintended directories or files; using rm -rf in installation scripts materially increases damage potential from path handling mistakes.

Vague Triggers

Medium
Confidence
97% confidence
Finding
The activation text includes broad conditions like "wants to create a new yotta- skill, scaffold a skill from scratch" and short trigger words such as "scaffold," which can overlap with common development discussion rather than a clear invocation command. It also does not provide exclusion conditions or negative examples to distinguish when the skill should not activate.

Session Persistence

Medium
Category
Rogue Agent
Content
| 元造 yotta-skill-creator (this skill) | **Create**: compliant scaffold + structure self-check |
| 元守 yotta-publish-guard | **Guard**: pre-publish check / pack / versions / names / publish |

Recommended flow: **元造 create (scaffold) → develop the skill body / scripts / tests → 元守 check → pack → versions → names → publish**.

References: `references/tutorial.md` (Chinese tutorial), `references/cli-reference.md` (full CLI reference), `references/scaffold-structure.md` (generated layout).
Confidence
60% confidence
Finding
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Skill Enumeration

Medium
Category
Agent Snooping
Content
```text
# Optional China mirror: npm config set registry https://registry.npmmirror.com
npx -y @yottameta/yotta-skill-creator --agent <agent-name>      # install to the agent's default user-level skills dir
npx -y @yottameta/yotta-skill-creator --dir <your-skills-dir>   # point to the skills dir itself (e.g. ~/.codex/skills)
```
Confidence
85% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The README recommends executing an unpinned npm package via npx, which fetches the latest published version at runtime. If the package is ever compromised, typo-squatted, or a malicious update is published, users will execute attacker-controlled code during installation.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The README recommends executing an unpinned npm package via npx, which fetches the latest published version at runtime. If the package is ever compromised, typo-squatted, or a malicious update is published, users will execute attacker-controlled code during installation.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The README recommends executing an unpinned npm package via npx, which fetches the latest published version at runtime. If the package is ever compromised, typo-squatted, or a malicious update is published, users will execute attacker-controlled code during installation.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The README recommends executing an unpinned npm package via npx, which fetches the latest published version at runtime. If the package is ever compromised, typo-squatted, or a malicious update is published, users will execute attacker-controlled code during installation.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The README recommends executing an unpinned npm package via npx, which fetches the latest published version at runtime. If the package is ever compromised, typo-squatted, or a malicious update is published, users will execute attacker-controlled code during installation.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The README recommends executing an unpinned npm package via npx, which fetches the latest published version at runtime. If the package is ever compromised, typo-squatted, or a malicious update is published, users will execute attacker-controlled code during installation.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The README recommends executing an unpinned npm package via npx, which fetches the latest published version at runtime. If the package is ever compromised, typo-squatted, or a malicious update is published, users will execute attacker-controlled code during installation.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The README recommends executing an unpinned npm package via npx, which fetches the latest published version at runtime. If the package is ever compromised, typo-squatted, or a malicious update is published, users will execute attacker-controlled code during installation.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The README recommends executing an unpinned npm package via npx, which fetches the latest published version at runtime. If the package is ever compromised, typo-squatted, or a malicious update is published, users will execute attacker-controlled code during installation.

Natural-Language Policy Violations

Medium
Confidence
87% confidence
Finding
文件中写明输入格式包含“中文名 + 描述”,且示例与命名规则进一步要求中文名遵循“元X”规范,体现出对语言/locale 的强约束。文档未说明这是可选项,也未提供语言选择或明确的合规性理由,因此构成自然语言层面的语言政策风险。

Vague Triggers

Medium
Confidence
94% confidence
Finding
The documented trigger phrases include broad everyday terms such as `脚手架`, `scaffold`, and `新建技能`, which can cause the skill to activate in contexts broader than intended. Over-broad activation is dangerous because this skill creates files and scaffolding; accidental invocation could lead to unintended file generation, workflow confusion, or an avenue for prompt-routing abuse in multi-skill environments.

Lp3

Medium
Category
MCP Least Privilege
Confidence
81% confidence
Finding
The skill advertises filesystem, shell, and environment-driven behavior but does not declare any explicit tool scope or allowed-tools boundary. That increases the chance an agent will run it with broader-than-necessary capabilities, making unintended file writes, shell execution, or environment-based path targeting harder to constrain or review.

Vague Triggers

Medium
Confidence
96% confidence
Finding
Broad trigger phrases such as generic terms for creating or scaffolding skills can cause the skill to activate in contexts where the user did not intend file generation or installation-related actions. In a skill that can create directories, write files, or potentially deploy into agent paths, accidental invocation raises the risk of unintended side effects.

Natural-Language Policy Violations

Medium
Confidence
87% confidence
Finding
The manifest description and usage requirements mandate Chinese-specific naming like "中文名" and the "元X" convention, and the document is written as a Chinese-only operating interface. The file does not offer an opt-in language choice or explain that the locale restriction is required for a region-specific compliance purpose.

Context-Inappropriate Capability

Medium
Confidence
90% confidence
Finding
The script enumerates many different agents' skill/config locations and contains logic to write into them, which exceeds what is necessary for a simple scaffold generator. This cross-agent installation capability can be abused for broad local persistence across multiple AI tools and increases the blast radius if the packaged content is ever malicious or compromised.

Description-Behavior Mismatch

Medium
Confidence
91% confidence
Finding
The installer copies the packaged skill into target skill directories, effectively deploying executable prompt/instruction content into agent-controlled locations rather than only generating a scaffold in a user-chosen workspace. Given the stated purpose is skill creation/scaffolding, silently installing itself into agent directories broadens persistence and trust boundaries, especially when combined with automatic project-level discovery and global install modes.

Static analysis

No suspicious patterns detected.