Back to skill

Security audit

AI电商专家|品牌 Campaign KV 风格迁移

Security checks for vulnerabilities and agentic risk

Overview

This skill has a coherent ecommerce image-generation purpose, but it needs review because its helper can invoke broader IMIVA MCP tools and passes the full local environment to an unpinned npm package.

Install only if you trust IMIVA and the npm package publisher with your MCP token, local content paths, and any environment variables available in the terminal. Prefer a pinned package version, a minimal child environment, and a wrapper that allowlists only create_visual_migration_task plus necessary read-only credit/task status tools before using it for accounts with valuable credits or sensitive media.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (4)

Intent-Code Divergence

Medium
Confidence
91% confidence
Finding
The `真实 MCP 能力` section asserts that only `create_visual_migration_task` is used, but later instructions direct use of additional tools such as `get_user_credits`, `get_user_tasks`, and `list-tools`. This mismatch can mislead reviewers and users about the skill's true operational scope, weakening least-privilege review and making it easier for broader tool access to be granted without proper scrutiny.

Description-Behavior Mismatch

Medium
Confidence
90% confidence
Finding
The skill metadata claims a narrowly scoped Campaign KV style migration capability, but the CLI exposes generic tool selection via the user-supplied tool argument. That scope mismatch can enable use of any MCP tool available to the token, increasing the attack surface and allowing unintended actions beyond the declared purpose.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
The invoke() helper accepts an arbitrary MCP method string and forwards it directly to the spawned MCP client, even though this skill is supposed to be dedicated to one business workflow. If an attacker or higher-level wrapper can influence the method, they may access MCP functionality not intended for this skill, bypassing least-privilege expectations.

Env Variable Harvesting

High
Category
Data Exfiltration
Content
def invoke(method: str, params: dict | None = None) -> dict:
    npx, token = require_runtime()
    env = os.environ.copy()
    env["MCP_TOKEN"] = token
    env["API_URL"] = os.environ.get("IMIVA_API_URL", os.environ.get("API_URL", DEFAULT_API_URL))
    proc = subprocess.Popen(
Confidence
89% confidence
Finding
Copying the entire parent environment into a child process unnecessarily exposes all ambient secrets and sensitive configuration to the external npm package being executed. Because the package is fetched via npx and currently referenced as @latest, this expands the blast radius of any package compromise or unexpected package behavior.

Static analysis

No suspicious patterns detected.