Back to skill

Security audit

Element UI Docs

Security checks for vulnerabilities and agentic risk

Overview

This is a documentation-only Element UI Vue 2 skill, with some copyable examples that users should adapt before using with real data.

Install this as a documentation reference, but treat its snippets as examples. Replace demo upload URLs with your own trusted backend, avoid testing uploads with sensitive files, pin CDN/package versions in real apps, and translate or ask for English output if you do not want Chinese documentation text.

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)

T09 · Insecure Skill Coding Practices

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

Upload Examples Transmit User-Selected Files to an External Third-Party Service

Content
View full analysis
``` Equivalent hard-coded external upload actions appear in several other copyable examples: ```html ``` ```html ``` ### Technical Analysis The `action` property determines the server to which Element UI sends selected file contents. Most examples use Element UI's default automatic-upload behavior, so selecting a file can immediately generate an HTTPS POST request to `jsonplaceholder.typicode.com`. Network-based upload behavior is legitimate for documenting the Upload component. However, transmitting files to an unrelated third-party demonstration service is not required to fulfill that purpose and exceeds the minimum external access necessary for a safe example. A user may copy and run the example without recognizing that a locally selected file will leave their environment. The examples include client-side file restrictions in some cases, but these restrictions do not prevent disclosure to the configured endpoint. They only control whether the browser initiates an upload based on client-visible properties. The thi ...[truncated 1465 chars]
Remediation
View remediation
``` 2. Set `:auto-upload="false"` in documentation examples so selecting a file does not immediately cause network transmission. 3. Add a visible warning next to every upload example stating that: - The `action` endpoint receives the complete selected file. - Users must replace it with an endpoint they own and trust. - Production systems must authenticate requests and validate files server-side. 4. If a live demonstration is necessary, use a local mock request function that does not transmit data: ```html ``` ```javascript methods: { mockUpload({ file, onSuccess }) { console.info('Demo only; file was not transmitted:', file.name); onSuccess({ simulated: true }); } } ``` 5. Preserve the existing production security guidance concerning server-side type, size, and content validation, but place the warning directly beside the copyable examples rather than only in the general Skill instructions. ]]>

T08 · Insecure Dependencies

Note
Location
references/guides/installation.md:10
Finding

Installation Example Loads Unpinned Executable JavaScript from a Public CDN

Content
View full analysis
``` :::tip 我们建议使用 CDN 引入 Element 的用户在链接地址上锁定版本,以免将来 Element 升级时受到非兼容性更新的影响。锁定版本的方法请查看 [unpkg.com](https://unpkg.com)。 ::: ``` ### Technical Analysis The example imports executable JavaScript from an unversioned URL: ```html ``` Because no exact package version appears in the URL, the resource can resolve to a different release after the example has been reviewed. The script also lacks a Subresource Integrity (`integrity`) value, so the browser has no cryptographic constraint on the content returned by the CDN. The accompanying text recommends version pinning, which reduces the likelihood of accidental use. Nevertheless, the primary copyable example remains unpinned and therefore contradicts that guidance. Any JavaScript returned by the URL executes within the consuming page's origin and receives the same browser privileges as the application. This is a supply-chain weakness rather than evidence that the current Element UI package or CDN is malicious. ### Attack Path 1. A user copies the CDN installation example into a Vue 2 application. 2. A browser requests `https://unpkg.com/element-ui/lib/index.js` whenever the page loads. 3. A future package change, compromised upstream release, compromised CDN response, or unintended version transition changes the JavaScript served at that URL. 4. Because the URL is unpinned and no integrity hash is present, t ...[truncated 889 chars]
Remediation
View remediation
``` 2. Where the CDN provides stable files compatible with Subresource Integrity, add verified `integrity` and `crossorigin="anonymous"` attributes: ```html ``` The integrity value must be calculated or obtained from a trusted source for the exact referenced file; a fabricated or mismatched hash must not be used. 3. Prefer installing the package through a lockfile-managed package manager and serving the bundled dependency locally. 4. Review and pin transitive dependencies, retain the lockfile in version control, and use package integrity checks during builds. 5. Apply an appropriately restrictive Content Security Policy to limit executable script sources. This is defense in depth and does not replace version pinning or integrity verification. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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 (56)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The description and opening instructions present the skill as a Chinese documentation skill and frame usage around Chinese-language queries, without offering the user a language choice or stating that Chinese is optional. This can violate language/locale policy when users have not opted into Chinese output.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

This markdown section presents the skill documentation primarily in Chinese (for example at L095-L121 and L194-L196) without indicating that the language is optional, user-selectable, or required for a region-specific purpose. That creates a natural-language policy issue because it imposes a locale on users without opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This markdown file presents all user-facing instructional content in Chinese, including headings, descriptions, and parameter explanations, without indicating that the skill or documentation is intentionally region-specific or offering an alternative language. Under the language/locale policy rule, forcing a specific language without opt-in can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This markdown file presents the component documentation in Chinese ('Drawer 抽屉') and continues entirely in Chinese without indicating that another language option is available. Under the policy, forcing a specific language without user opt-in is a natural-language locale violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

SQP-3 applies to all file types and covers natural-language language/locale policy violations. This markdown file presents all instructional content in Chinese only, with no indication that the skill is region-specific or that users can choose another language.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown file presents nearly all user-facing instructions and examples in Chinese, which effectively forces a specific language/locale on readers. The policy allows locale constraints only when users are given a choice or the restriction is clearly documented and justified, neither of which appears here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The file’s natural-language documentation is written in Chinese and does not indicate any language choice or opt-in. Per the policy category, forcing a specific language/locale in user-facing skill content without user choice is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The markdown content is written entirely in Chinese, including headings, explanations, and parameter descriptions, with no indication that language selection is optional or that the component documentation is intentionally limited to a Chinese-speaking audience. Under the stated policy, forcing a specific language without user opt-in is a natural-language locale violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The document title and all instructional content are presented in Chinese, with no indication that language selection is optional or that the component is intentionally restricted to a Chinese-only audience. Per the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale constraint is explicitly documented and justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The documentation content is written entirely in Chinese, but it does not indicate that the skill or component reference is intentionally region-specific or offer an alternate language option. Under the stated policy, forcing a specific language without user opt-in or justification is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The upload examples submit user-selected files to a remote third-party endpoint (jsonplaceholder.typicode.com) but the surrounding documentation does not clearly warn that files will be transmitted off-device/network. In documentation aimed at developers, this can lead to accidental exposure of real local files during testing, especially if readers copy the example verbatim into demos or internal tools.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The description says "Invoke when user needs 更新日志 in Vue 2.x project," which is a broad natural-language activation cue rather than a narrowly defined trigger phrase. Because it does not define exact trigger terms, exclusions, or context boundaries beyond a general project type, ordinary requests about changelogs or updates in a Vue 2 project could match unintentionally.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill metadata describes the resource as "更新日志" and points to a Chinese-language URL path (/zh-CN/), indicating the skill is oriented to Chinese output/content without stating that this is optional or user-selected. This can violate language/locale policy because the file does not offer a language choice or document a justified locale restriction.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The description says 'Invoke when user needs 导航', which is a broad natural-language condition rather than a specific trigger scope. Because '导航' can refer to many ordinary UI or wayfinding requests, this could cause unintended invocation without clear constraints or exclusion conditions.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This file presents all user-facing instructions and navigation text in Chinese, and there is no indication that users can choose another language or that the skill is intentionally restricted to a Chinese-speaking context. Under the policy rule, forcing a specific language without user opt-in is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
97% confidence
Finding

This markdown documentation presents the component title and description in Chinese only (e.g. '警告', '用于页面中展示重要的提示信息。') with no indication that the skill is region-specific or that other language options are available. Under the policy rule, a skill that forces a specific language without user opt-in can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The markdown content is primarily written in Chinese, including the component title, descriptions, and attribute explanations, with no indication that language selection is optional or that the document is intentionally limited to a Chinese-only audience. Under the stated policy, forcing a specific language without user opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown file presents the component description and usage guidance in Chinese, with no indication that language selection is optional or that the file is intentionally region-specific. Under the stated policy, forcing a specific language without user opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

This markdown file presents most instructional content in Chinese while some headings and labels remain in English, but it does not indicate that the documentation is intentionally region-specific or offer an alternative language. Under the policy, forcing a specific language without user opt-in can be a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The file presents the skill documentation almost entirely in Chinese, beginning with the title and continuing through descriptions and parameter explanations, without indicating that language selection is optional. Under the policy rule for natural-language violations, this is a locale/language constraint that is neither user-opt-in nor explicitly justified as region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

This markdown documentation is primarily written in Chinese, including headings, descriptions, and attribute explanations, without indicating that language selection is optional or that this locale is intentionally region-specific. Under the policy rule for natural-language violations, forcing a specific language without user opt-in can be considered a locale policy issue.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

This markdown file presents all user-facing instructional content in Chinese, and does not indicate that the skill is region-specific or provide an opt-in language choice. Under the language/locale policy, forcing a specific language without user choice can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

This markdown file presents all instructional content in Chinese and does not indicate that users may choose another language or locale. Under the policy rule for natural-language violations, forcing a specific language without user opt-in can exclude users who do not read that language.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The file’s heading and descriptive text are written entirely in Chinese, with no indication that the component documentation is intentionally region-specific or that alternative locales are available. Under the policy, forcing a specific language without user opt-in is a natural-language locale violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

This markdown file presents the skill documentation primarily in Chinese, with only partial English labels, and does not indicate that the component docs are intentionally region-specific or offer an alternative language. Under the natural-language policy rules, forcing a specific language without user opt-in can be a locale policy violation.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.