Back to skill

Security audit

element-plus-docs

Security checks for vulnerabilities and agentic risk

Overview

This is a documentation-only Element Plus helper; the main caution is that some copyable upload examples use a third-party demo endpoint.

Safe to install as a documentation reference. When using generated upload examples, replace any run.mocky.io or other demo endpoint with an endpoint you own before selecting files, and review destructive dev FAQ commands such as removing node_modules before running them.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
references/components/upload.md:41
Finding

Hardcoded Third-Party Endpoint Can Receive User-Selected Files

Content
View full analysis

Vulnerability Details

File Location: references/components/upload.md, lines 41, 108, 153, and 228
Vulnerability Type: Hardcoded external upload destination
Risk Level: Medium

Vulnerable Code

The same external endpoint appears in four copyable examples:

vue
<el-upload
  v-model:file-list="fileList"
  class="upload-demo"
  action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
  multiple
  :on-preview="handlePreview"
  :on-remove="handleRemove"
  :before-remove="beforeRemove"
  :limit="3"
  :on-exceed="handleExceed"
>
vue
<el-upload
  ref="upload"
  class="upload-demo"
  action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
  :limit="1"
  :on-exceed="handleExceed"
  :auto-upload="false"
>
vue
<el-upload
  class="avatar-uploader"
  action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
  :show-file-list="false"
  :on-success="handleAvatarSuccess"
  :before-upload="beforeAvatarUpload"
>
vue
<el-upload
  v-model:file-list="fileList"
  action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
  list-type="picture-card"
  :on-preview="handlePictureCardPreview"
  :on-remove="handleRemove"
>

Technical Analysis

The documentation presents directly reusable Element Plus upload examples whose action property points to a fixed endpoint operated outside the user's application. Element Plus submits selected file contents to the configured action URL.

The examples at lines 41, 153, and 228 do not disable automatic uploading, so file selection can initiate transmission without a separate explicit submit action. The example at line 108 sets auto-upload="false", but later transmits the selected file when upload.value!.submit() is called.

Although the endpoint appears to be intended as a demonstration service, the upload document does not place a warning next to these examples requiring replacement with an operator-controlled endpoint. The Skill also desc ...[truncated 1526 chars]

Remediation
View remediation

Remediation Suggestions

  1. Replace the external demonstration destination in every example with an application-relative placeholder:

    vue
    <el-upload action="/api/upload" :auto-upload="false">
    
  2. Add an explicit warning immediately above every upload example stating that developers must configure an endpoint they own and trust before selecting any file.

  3. Default demonstrations to :auto-upload="false" so file selection alone does not initiate network transmission.

  4. Require an explicit confirmation step before calling submit() and display the resolved upload destination to the user.

  5. Avoid using real or sensitive files in demonstrations. Provide a generated sample fixture when a live upload demonstration is necessary.

  6. For production deployments, enforce HTTPS, authentication, authorization, CSRF protections where applicable, request-size limits, server-side file-type and content validation, malware scanning, randomized storage names, and restrictive storage permissions.

  7. Add an automated documentation check that rejects upload examples containing hardcoded third-party destinations unless they are clearly marked as non-production and protected against automatic submission.

Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (1078)

YARA rule 'agent_skill_mcp_tool_poisoning_metadata': MCP/tool metadata poisoning indicators in tool schemas or skill manifests [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

Scanner excerpt · references/components/backtop.md (reported line 3)May include surrounding context.

md
---
name: "backtop"
description: "Backtop 回到顶部 -- Element Plus Vue3 桌面端组件。Invoke when user needs Backtop 回到顶部 in Vue 3.x project."
url: "https://element-plus.org/zh-CN/component/backtop.html"
---

---

# Backtop 回到顶部 [​](#backtop-回到顶部)

更新日志待解决

1

返回页面顶部的操作按钮。

## 基础用法 [​](#基础用法)

通过滑动来查看容器右下角的按钮。

Scroll down to see the bottom-right button.

TS

JS

_[](https://element-plus.run/#eyJBcHAudnVlIjoiPHRlbXBsYXRlPlxuICBTY3JvbGwgZG93biB0byBzZWUgdGhlIGJvdHRvbS1yaWdodCBidXR0b24uXG4gIDxlbC

YARA rule 'agent_skill_mcp_tool_poisoning_metadata': MCP/tool metadata poisoning indicators in tool schemas or skill manifests [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

Scanner excerpt · references/components/border.md (reported line 3)May include surrounding context.

md
---
name: "border"
description: "Border 边框 -- Element Plus Vue3 桌面端组件。Invoke when user needs Border 边框 in Vue 3.x project."
url: "https://element-plus.org/zh-CN/component/border.html"
---

---

# Border 边框 [​](#border-边框)

我们对边框进行统一规范,可用于按钮、卡片、弹窗等组件里。

## 边框样式 [​](#边框样式)

我们提供了以下几种边框样式,以供选择。

<table class="demo-border" data-v-fc2962eb=""><tbody data-v-fc2962eb=""><tr data-v-fc2962eb=""><td class="text" data-v-fc2962eb="">Name</td><td class="text" data-v-fc2962eb="">Thickne

YARA rule 'agent_skill_mcp_tool_poisoning_metadata': MCP/tool metadata poisoning indicators in tool schemas or skill manifests [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

Scanner excerpt · references/components/descriptions.md (reported line 3)May include surrounding context.

md
---
name: "descriptions"
description: "Descriptions 描述列表 -- Element Plus Vue3 桌面端组件。Invoke when user needs Descriptions 描述列表 in Vue 3.x project."
url: "https://element-plus.org/zh-CN/component/descriptions.html"
---

---

# Descriptions 描述列表 [​](#descriptions-描述列表)

更新日志待解决

9

列表形式展示多个字段。

## 基础用法 [​](#基础用法)

User Info

<table class="el-descriptions__table"><tbody><tr><td style="width:;min-width:;" class="el-descriptions__cell"><span style="" class="el-descriptions__label">Username</span><span class="el-descriptions__c

YARA rule 'agent_skill_mcp_tool_poisoning_metadata': MCP/tool metadata poisoning indicators in tool schemas or skill manifests [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

Scanner excerpt · references/components/divider.md (reported line 3)May include surrounding context.

md
---
name: "divider"
description: "Divider 分割线 -- Element Plus Vue3 桌面端组件。Invoke when user needs Divider 分割线 in Vue 3.x project."
url: "https://element-plus.org/zh-CN/component/divider.html"
---

---

# Divider 分割线 [​](#divider-分割线)

更新日志待解决

1

区隔内容的分割线。

## 基础用法 [​](#基础用法)

对不同段落的文本进行分割。

I sit at my window this morning where the world like a passer-by stops for a moment, nods to me and goes.

There little thoughts are the rustle of leaves; they have their whisper of joy in my mind.

TS

JS

_[](http

YARA rule 'agent_skill_mcp_tool_poisoning_metadata': MCP/tool metadata poisoning indicators in tool schemas or skill manifests [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

Scanner excerpt · references/components/empty.md (reported line 1)May include surrounding context.

md
## Empty 空状态 ​

**URL:** https://element-plus.org/zh-CN/component/empty

**Contents:**
- Empty 空状态 ​
- 基础用法 ​
- 自定义图片 ​
- 图片尺寸 ​
- 底部内容 ​
- 自定义样式 ​
  - 默认变量 ​
- API ​
  - Attributes ​
  - 插槽 ​

通过设置 image 属性传入图片 URL。

通过使用 image-size 属性来控制图片大小。

您可以为empty组件设置自定义样式。 使用 css/scss 语言来更改全局或局部颜色。 我们设置了一些全局颜色变量:--el-empty-fill-color-0、--el-empty-fill-color-1、--el-empty-fill-color-2、……、

YARA rule 'agent_skill_mcp_tool_poisoning_metadata': MCP/tool metadata poisoning indicators in tool schemas or skill manifests [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

Scanner excerpt · references/components/select.md (reported line 1)May include surrounding context.

md
## Select 选择器 ​

**URL:** https://element-plus.org/zh-CN/component/select

**Contents:**
- Select 选择器 ​
- 基础用法 ​
- Options 属性 2.10.5 ​
- 有禁用选项 ​
- 禁用状态 ​
- 可清空 ​
- 尺寸 ​
- 基础多选 ​
- 自定义模板 ​
- 自定义下拉菜单的头部 2.4.3 ​

当选项过多时,使用下拉菜单展示并选择内容。

在版本 2.5.0之后, el-select 的默认宽度更改为 100% 当使用内联形式时,宽度将显示异常。 为了保持显示正常, 您需要手动配置 el-select 的宽度 (如: 例子).

适用广泛的基础单选 v-mo

YARA rule 'agent_skill_mcp_tool_poisoning_metadata': MCP/tool metadata poisoning indicators in tool schemas or skill manifests [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

Scanner excerpt · references/components/steps.md (reported line 1)May include surrounding context.

md
## Steps 步骤条 ​

**URL:** https://element-plus.org/zh-CN/component/steps

**Contents:**
- Steps 步骤条 ​
- 基础用法 ​
- 含状态的步骤条 ​
- 居中的步骤条 ​
- 带描述的步骤栏 ​
- 带图标的步骤条 ​
- 垂直的步骤条 ​
- 简洁风格的步骤条 ​
- Steps API ​
  - Steps Attributes ​

引导用户按照流程完成任务的分步导航条, 可根据实际应用场景设定步骤,步骤不得少于 2 步。

设置 active 属性,接受一个 Number,表明步骤的 index,从 0 开始。 需要定宽的步骤条时,设置 space 属性即可,它�

YARA rule 'agent_skill_mcp_tool_poisoning_metadata': MCP/tool metadata poisoning indicators in tool schemas or skill manifests [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

Scanner excerpt · references/components/tour.md (reported line 1)May include surrounding context.

md
## Tour 漫游式引导 ​

**URL:** https://element-plus.org/zh-CN/component/tour

**Contents:**
- Tour 漫游式引导 ​
- 基础用法 ​
- 非模态 ​
- 位置 ​
- 自定义遮罩样式 ​
- 自定义指示器 ​
- 目标 ​
- Tour API ​
  - Tour Attributes ​
  - Tour slots ​

用于分步引导用户了解产品功能的气泡组件。 用来引导用户并介绍产品

使用:mask="false"可以将引导变为非模态, 同时为了强调引导本身,建议与 type="primary" 组合使用。

改变引导相对于目标的位置,共有 12 种位置可供选择。 当 target 为空时引导�

YARA rule 'agent_skill_mcp_tool_poisoning_metadata': MCP/tool metadata poisoning indicators in tool schemas or skill manifests [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

Scanner excerpt · references/components/transfer.md (reported line 1)May include surrounding context.

md
## Transfer 穿梭框 ​

**URL:** https://element-plus.org/zh-CN/component/transfer

**Contents:**
- Transfer 穿梭框 ​
- 基础用法 ​
- 可搜索过滤 ​
- 自定义 ​
- 自定义空内容 2.9.0 ​
- 数据项属性别名 ​
- Virtual Scroll 2.14.3 ​
- Transfer API ​
  - Transfer Attributes ​
  - Transfer Events ​

Transfer 的数据通过 data 属性传入。 数据需要是一个对象数组,每个对象有以下属性:key 为数据的唯一性标识,label 为显示文本,disabled 表示该项数据是否禁止被操作。 目标列表中的数据项会同步到绑定至 v-model �

YARA rule 'agent_skill_mcp_tool_poisoning_metadata': MCP/tool metadata poisoning indicators in tool schemas or skill manifests [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

Scanner excerpt · references/components/typography.md (reported line 3)May include surrounding context.

md
---
name: "typography"
description: "Typography 排版 -- Element Plus Vue3 桌面端组件。Invoke when user needs Typography 排版 in Vue 3.x project."
url: "https://element-plus.org/zh-CN/component/typography.html"
---

---

# Typography 排版 [​](#typography-排版)

我们对字体进行统一规范,力求在各个操作系统下都有最佳展示效果。

## 字体 [​](#字体)

![](https://element-plus.org/images/typography/term-pingfang.png)![](https://element-plus.org/images/typography/term-hiragino.png)![](https://element-plus.org/images/typography/term-microsoft.png)![](https://element-plus.org/

YARA rule 'agent_skill_mcp_tool_poisoning_metadata': MCP/tool metadata poisoning indicators in tool schemas or skill manifests [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

Scanner excerpt · references/extra-guides/dev-faq.md (reported line 3)May include surrounding context.


name: "dev-faq" description: "开发常见问题 -- Element Plus Vue3 桌面端组件。Invoke when user needs 开发常见问题 in Vue 3.x project." url: "https://element-plus.org/zh-CN/guide/dev-faq.html"


开发常见问题 ​

这里是开发方面容易遇到的问题

如果你遇到依赖相关问题 ​

shell

text
rm -rf node_modules
pnpm i

链接本地依赖 ​

shell

text
# 获取构建结果
pnpm build
cd dist/element-plus
# set cur element-plus to global `node_modules`
pnpm link --global
#

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/components/affix.md (reported line 1)May include surrounding context.

md
## 内置过渡动画 ​

**URL:** https://element-plus.org/zh-CN/guide/transitions

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/components/affix.md (reported line 6)May include surrounding context.

md
## 内置过渡动画 ​

**URL:** https://element-plus.org/zh-CN/guide/transitions

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/components/affix.md (reported line 7)May include surrounding context.

md
## 内置过渡动画 ​

**URL:** https://element-plus.org/zh-CN/guide/transitions

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/components/affix.md (reported line 8)May include surrounding context.

md
## 内置过渡动画 ​

**URL:** https://element-plus.org/zh-CN/guide/transitions

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/components/affix.md (reported line 9)May include surrounding context.

md
## 内置过渡动画 ​

**URL:** https://element-plus.org/zh-CN/guide/transitions

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/components/affix.md (reported line 10)May include surrounding context.

md
## 内置过渡动画 ​

**URL:** https://element-plus.org/zh-CN/guide/transitions

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/components/affix.md (reported line 11)May include surrounding context.

md
## 内置过渡动画 ​

**URL:** https://element-plus.org/zh-CN/guide/transitions

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/components/affix.md (reported line 12)May include surrounding context.

md
## 内置过渡动画 ​

**URL:** https://element-plus.org/zh-CN/guide/transitions

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/components/affix.md (reported line 13)May include surrounding context.

md
## 内置过渡动画 ​

**URL:** https://element-plus.org/zh-CN/guide/transitions

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/components/affix.md (reported line 14)May include surrounding context.

md
## 内置过渡动画 ​

**URL:** https://element-plus.org/zh-CN/guide/transitions

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/components/affix.md (reported line 15)May include surrounding context.

md
## 内置过渡动画 ​

**URL:** https://element-plus.org/zh-CN/guide/transitions

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/components/alert.md (reported line 1)May include surrounding context.

md
## 内置过渡动画 ​

**URL:** https://element-plus.org/zh-CN/guide/transitions

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/components/alert.md (reported line 6)May include surrounding context.

md
## 内置过渡动画 ​

**URL:** https://element-plus.org/zh-CN/guide/transitions

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/components/alert.md (reported line 7)May include surrounding context.

md
## 内置过渡动画 ​

**URL:** https://element-plus.org/zh-CN/guide/transitions

Static analysis

No suspicious patterns detected.