Back to skill

Security audit

Vue3 ECharts 大屏与图表一体化

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent Vue3/ECharts code-generation skill that writes project files and can optionally install npm dependencies, with no hidden persistence, credential access, exfiltration, or destructive behavior found.

Install only if you want a Chinese-language Vue3/ECharts code generator. Run dry-run first, review the target path before using --force, and audit or pin npm dependencies before using the generated dashboard in production.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
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
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (33)

Ae1

High
Category
analysis-evasion
Content
- 扩展主题:在 `src/theme/index.ts` 的 `themes` 里加一条,并把调色板同步到 `scripts/generate.mjs` 的 `THEMES`。
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Self-Modification

High
Category
Rogue Agent
Content
help="chart type",
    )
    ap.add_argument("--dry-run", action="store_true", help="print plan, write nothing")
    ap.add_argument("--force", action="store_true", help="overwrite existing files")
    args = ap.parse_args()

    pascal = to_pascal(args.name)
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.

Lp3

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding
The skill instructs the agent to generate files and optionally run package installation, and it also relies on Axios/networked data patterns, but it declares no explicit tool/permission scope. That mismatch creates a least-privilege failure: an agent may invoke file-write or network-capable actions without an explicit contract or user-visible boundary, increasing the chance of unsafe execution in the wrong context.

Vague Triggers

Medium
Confidence
92% confidence
Finding
The trigger list contains broad natural-language phrases like '大屏', '数据看板', and generic chart requests, which can cause the skill to activate in situations broader than intended. Overbroad activation is risky here because this skill can generate or modify project files, so accidental invocation could lead to unintended code changes or installation steps.

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
The HTML root sets `lang="zh-CN"`, which enforces a specific language/locale in the document. Under the policy, locale constraints should either be user-selectable or clearly justified as region-specific; neither is evident in this file.

Natural-Language Policy Violations

Medium
Confidence
96% confidence
Finding
This manifest-style JSON contains user-facing strings such as labels and units entirely in Chinese, which implies a fixed language/locale in the skill output. There is no accompanying indication that the skill is region-specific or that users can opt into this locale, which can violate language/locale policy requirements.

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
The title and entire instruction content are written as a Chinese-only cookbook, and there is no indication that users may choose another language or that the skill is intentionally limited to a Chinese-specific audience. Under the policy, forcing a specific language without opt-in is a natural-language policy concern.

Natural-Language Policy Violations

Medium
Confidence
89% confidence
Finding
The file title and all operational guidance are written in Chinese, which imposes a specific language on users. Under the policy, language constraints should either be optional, user-selectable, or clearly justified as region-specific, none of which is stated here.

Natural-Language Policy Violations

Low
Confidence
95% confidence
Finding
This TypeScript file contains natural-language guidance exclusively in Chinese, including the main description, usage steps, and warnings. Per the policy, forcing a specific language without user opt-in is a natural-language policy violation.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"type-check": "vue-tsc --noEmit"
  },
  "dependencies": {
    "axios": "^1.7.0",
    "echarts": "^5.5.0",
    "echarts-liquidfill": "^3.1.0",
    "echarts-wordcloud": "^2.1.0",
Confidence
40% confidence
Finding
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Unverifiable Dependency: axios has 16 known advisory(ies) (CVE-2026-44494 (axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in `co); CVE-2026-44495 (axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollut); CVE-2025-62718 (Axios has a NO_PROXY Hostname Normalization Bypass that Leads to SSRF) +13 more), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
40% confidence
Finding
Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.

Unpinned Dependencies

Low
Category
Supply Chain
Content
},
  "dependencies": {
    "axios": "^1.7.0",
    "echarts": "^5.5.0",
    "echarts-liquidfill": "^3.1.0",
    "echarts-wordcloud": "^2.1.0",
    "naive-ui": "^2.38.0",
Confidence
40% confidence
Finding
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Unverifiable Dependency: echarts has 1 known advisory(ies) (CVE-2026-45249 (Apache ECharts has a cross-site scripting (XSS) vulnerability)), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
40% confidence
Finding
Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"dependencies": {
    "axios": "^1.7.0",
    "echarts": "^5.5.0",
    "echarts-liquidfill": "^3.1.0",
    "echarts-wordcloud": "^2.1.0",
    "naive-ui": "^2.38.0",
    "pinia": "^2.1.7",
Confidence
40% confidence
Finding
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"axios": "^1.7.0",
    "echarts": "^5.5.0",
    "echarts-liquidfill": "^3.1.0",
    "echarts-wordcloud": "^2.1.0",
    "naive-ui": "^2.38.0",
    "pinia": "^2.1.7",
    "vue": "^3.4.0",
Confidence
40% confidence
Finding
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"echarts": "^5.5.0",
    "echarts-liquidfill": "^3.1.0",
    "echarts-wordcloud": "^2.1.0",
    "naive-ui": "^2.38.0",
    "pinia": "^2.1.7",
    "vue": "^3.4.0",
    "vue3-digital-flop": "^1.0.2"
Confidence
40% confidence
Finding
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"echarts-liquidfill": "^3.1.0",
    "echarts-wordcloud": "^2.1.0",
    "naive-ui": "^2.38.0",
    "pinia": "^2.1.7",
    "vue": "^3.4.0",
    "vue3-digital-flop": "^1.0.2"
  },
Confidence
40% confidence
Finding
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"echarts-wordcloud": "^2.1.0",
    "naive-ui": "^2.38.0",
    "pinia": "^2.1.7",
    "vue": "^3.4.0",
    "vue3-digital-flop": "^1.0.2"
  },
  "devDependencies": {
Confidence
40% confidence
Finding
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Unverifiable Dependency: vue has 1 known advisory(ies) (CVE-2024-9506 (ReDoS vulnerability in vue package that is exploitable through inefficient regex)), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
40% confidence
Finding
Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"naive-ui": "^2.38.0",
    "pinia": "^2.1.7",
    "vue": "^3.4.0",
    "vue3-digital-flop": "^1.0.2"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^5.0.0",
Confidence
40% confidence
Finding
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"vue3-digital-flop": "^1.0.2"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^5.0.0",
    "typescript": "^5.4.0",
    "vite": "^5.2.0",
    "vue-tsc": "^2.0.0"
Confidence
40% confidence
Finding
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Unpinned Dependencies

Low
Category
Supply Chain
Content
},
  "devDependencies": {
    "@vitejs/plugin-vue": "^5.0.0",
    "typescript": "^5.4.0",
    "vite": "^5.2.0",
    "vue-tsc": "^2.0.0"
  }
Confidence
40% confidence
Finding
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"devDependencies": {
    "@vitejs/plugin-vue": "^5.0.0",
    "typescript": "^5.4.0",
    "vite": "^5.2.0",
    "vue-tsc": "^2.0.0"
  }
}
Confidence
40% confidence
Finding
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Unverifiable Dependency: vite has 16 known advisory(ies) (CVE-2023-34092 (Vite Server Options (server.fs.deny) can be bypassed using double forward-slash ); CVE-2025-32395 (Vite has an `server.fs.deny` bypass with an invalid `request-target`); CVE-2025-31125 (Vite has a `server.fs.deny` bypassed for `inline` and `raw` with `?import` query) +13 more), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
40% confidence
Finding
Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"@vitejs/plugin-vue": "^5.0.0",
    "typescript": "^5.4.0",
    "vite": "^5.2.0",
    "vue-tsc": "^2.0.0"
  }
}
Confidence
40% confidence
Finding
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Static analysis

Detected: suspicious.dangerous_exec

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/generate.mjs:125