Back to skill

Security audit

uView UI

Security checks for vulnerabilities and agentic risk

Overview

This is a documentation skill for uView UI in uni-app Vue 2 projects, with some normal but security-relevant examples users should review before copying.

Install is acceptable for uView UI/uni-app Vue 2 work. Treat the docs as examples: review any generated HTTP interceptors, token injection, uploads, global sharing mixins, rich-text rendering, and OTP handling before using them 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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (86)

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 · llms-full.txt (reported line 4956)May include surrounding context.

text
ideKeyboard()"
					ref="item1"
			>
				<u--input
						v-model="model1.userInfo.sex"
						disabled
						disabledColor="#ffffff"
						placeholder="请选择性别"
						border="none"
				></u--input>
				<u-icon
						slot="right"
						name="arrow-right"
				></u-icon>
			</u-form-item>
		</u--form>
		<u-action-sheet
				:show="showSex"
				:actions="actions"
				title="请选择性别"
				description="如果选择保密会报错"
				@close="showSex = false"
				@select="sexSelect"
		>
		</u-action-sheet>
	</view>
</template>

<script>
export default {
	data() {
		return {
			showSex: false,
			model1: {
				userInfo: {
					name: 'uView UI',
					sex: '',
				},
			},
			actions: [{
				name: '男',
				},
				{
					name: '女',
				},
				{
					name: '保密',
				},
			],
			rules: {
				'userInfo.name': {
					type: 'string',
					required: true,
					message: '请填写姓名',
					trigger: ['blur', 'change']
				},
				'userInfo.sex': {
					type: 'string',
					max: 1

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/navigation/tabs.md (reported line 3)May include surrounding context.

md
---
name: "tabs"
description: "Tabs 标签 -- uView UI uni-app Vue2 组件/工具。Invoke when user needs Tabs 标签 in uni-app Vue 2.x project."
url: "https://www.uviewui.com/components/tabs.html"
---

---

## [#](#tabs-标签) Tabs 标签 [![](https://www.uviewui.com/common/to_api.png)](#api)

该组件,是一个tabs标签组件,在标签多的时候,可以配置为左右滑动,标签少的时候,可以禁止滑动。 该组件的一个特点是配置为滚动模式时,激活的tab会自动移动到组件的中间位置。

### [#](#平台差异说明) 平台差异说明

| App(vue) | App�

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The activation text says to invoke the skill whenever the user 'needs forms, buttons, modals, toasts, navigation and other mobile UI components,' which is a very common development scenario not unique to uView UI. This broad phrasing can cause unintended invocation for unrelated UI libraries or generic frontend tasks because it does not clearly bound the trigger to uView-specific contexts.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The trigger includes generic needs like debounce, throttle, deep copy, and time formatting, which are common programming requests across many ecosystems. Because the line does not state that the user must be specifically asking for uView UI utility functions, it risks activating this skill for ordinary JavaScript utility questions unrelated to uView.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · llms-full.txt (reported line 911)May include surrounding context.

text
|
| --- | --- | --- | --- | --- | --- |

<table cellspacing="0" cellpadding="0" border="0" class="el-table__body" style="width: 949px;"><colgroup><col name="el-table_2_column_7" width="159"><col name="el-table_2_column_8" width="158"><col name="el-table_2_column_9" width="158"><col name="el-table_2_column_10" width="158"><col name="el-table_2_column_11" width="158"><col name="el-table_2_column_12" width="158"></colgroup><tbody><tr class="el-table__row"><td rowspan="1" colspan="1" class="el-table_2_column_7   el-table__cell"><div class="cell">r*r</div></td><td rowspan="1" colspan="1" class="el-table_2_column_8   el-table__cell"><div class="cell"><span data-v-40f8097f="" class="el-avatar el-avatar--circle" style="height: 40px; width: 40px; line-height: 40px;"><img src="https://api.uviewui.com/uploads/6905a8269999b705626b43f2.jpeg" style="object-fit: cover;"></span></div></td><td rowspan="1" colspan="1" class="el-table_2_column_9   el-table__cell"><div class="cell">5</div></td><td rowspan="1" colspan="1" class="el-table_2_column_10   el-table__cell"><div class="cell">2025-10-31</div></td><td rowspan="1" colspan="1" class="el-table_2_column_11   el-table__cell"><div class="cell"><span data-v-40f8097f="">微信</span></div></td><td rowspan="1" colspan="1" class="el-table_2_column_12   el-table__cell"><div class="cell"><span data-v-40f8097f="">--</span></div></td></tr><tr class="el-table__row"><td rowspan="1" colspan="1" class="el-table_2_column_7   el-table__cell"><div class="cell">c*b</div></td><td rowspan="1" colspan="1" class="el-table_2_column_8   el-table__cell"><div class="cell"><span data-v-40f8097f="" class="el-avatar el-avatar--circle" style="height: 40px; width: 40px; line-height: 40px;"><img src="https://api.uviewui.com/uploads/6905a85f9999b705626b4410.jpeg" style="object-fit: cover;"></span></div></td><td rowspan="1" colspan="1" class="el-table_2_column_9   el-table__cell"><div class="cell">10</div></td><td rowspan="1" colspan="1" class="el-table_2_column_10   el
...[truncated 28 chars]

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The manifest frames this skill as help for developing uni-app pages with Vue 2 using uView UI components such as buttons, forms, modals, and navigation. However, the bundled documentation also exposes a general HTTP client, file upload/download flows, and global mini-program sharing behavior, which are broader application capabilities rather than narrowly UI-component guidance.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The documented generic HTTP utility includes global interceptors, token injection from store state, uploads/downloads, and convenience wrappers unrelated to a narrowly scoped UI skill. In an agent-skill context, this broadens the action surface and can enable unintended outbound requests or authenticated data exfiltration if the agent follows the documentation without strict policy checks. The danger is increased because it normalizes attaching auth tokens automatically to requests.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill documents globally injecting mini-program sharing behavior into every page via a mixin, which exceeds the stated purpose of a UI component library skill. In an agent context, global cross-page behavior can create unintended propagation of sharing metadata or user-flow manipulation beyond the specific page being developed, especially if applied automatically. This is risky because it encourages broad side effects rather than least-privilege, page-local behavior.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This markdown file includes frontmatter metadata, so SQP-1 applies. The description says "Invoke when user needs 更新日志," which is a very general activation condition and does not define clear scope, constraints, or exclusion examples, making unintended invocation more likely.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The manifest description mixes English with Chinese and specifically describes the skill in Chinese without any indication that the skill is limited to Chinese-speaking users or that another language is available. Under the policy, forcing a specific language or locale without user opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The front-matter description says "Invoke when user needs 注意事项 in uni-app Vue 2.x project," where "needs 注意事项" is vague and does not define specific trigger phrases or clear boundaries for activation. Because 注意事项 means general notes/cautions, this could match many ordinary requests in that ecosystem and cause unintended invocation.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The invocation description includes a very broad trigger term, "安装", without clear scope constraints. This can cause the agent to activate for many generic installation-related requests outside the intended uView UI/uni-app Vue 2 context, increasing the chance of inappropriate tool use, irrelevant guidance, or prompt-surface expansion.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The front-matter description says to invoke when the user needs "介绍" in a uni-app Vue 2.x project. The trigger term "介绍" is a generic everyday word meaning "introduction," which is too broad on its own and could match many unrelated requests within that project context.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The file publishes a large donor roster including names/handles, payment platform, dates, messages, and profile image URLs that are unnecessary for a UI introduction skill. This expands exposure of personal data and can enable profiling, scraping, and downstream privacy abuse, especially because the skill context does not justify handling or displaying supporter records.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
95% confidence
Finding

The document embeds numerous external image references to api.uviewui.com for donor avatars, causing clients or renderers to contact a third-party host when the content is viewed. This can leak viewer metadata such as IP address, user agent, access timing, and referrer context, and it is especially unjustified in an intro skill where the external fetches are unrelated to the core documentation purpose.

Content

Scanner excerpt · references/dev-guide/intro.md (reported line 80)May include surrounding context.

md
|
| --- | --- | --- | --- | --- | --- |

<table cellspacing="0" cellpadding="0" border="0" class="el-table__body" style="width: 949px;"><colgroup><col name="el-table_2_column_7" width="159"><col name="el-table_2_column_8" width="158"><col name="el-table_2_column_9" width="158"><col name="el-table_2_column_10" width="158"><col name="el-table_2_column_11" width="158"><col name="el-table_2_column_12" width="158"></colgroup><tbody><tr class="el-table__row"><td rowspan="1" colspan="1" class="el-table_2_column_7   el-table__cell"><div class="cell">r*r</div></td><td rowspan="1" colspan="1" class="el-table_2_column_8   el-table__cell"><div class="cell"><span data-v-40f8097f="" class="el-avatar el-avatar--circle" style="height: 40px; width: 40px; line-height: 40px;"><img src="https://api.uviewui.com/uploads/6905a8269999b705626b43f2.jpeg" style="object-fit: cover;"></span></div></td><td rowspan="1" colspan="1" class="el-table_2_column_9   el-table__cell"><div class="cell">5</div></td><td rowspan="1" colspan="1" class="el-table_2_column_10   el-table__cell"><div class="cell">2025-10-31</div></td><td rowspan="1" colspan="1" class="el-table_2_column_11   el-table__cell"><div class="cell"><span data-v-40f8097f="">微信</span></div></td><td rowspan="1" colspan="1" class="el-table_2_column_12   el-table__cell"><div class="cell"><span data-v-40f8097f="">--</span></div></td></tr><tr class="el-table__row"><td rowspan="1" colspan="1" class="el-table_2_column_7   el-table__cell"><div class="cell">c*b</div></td><td rowspan="1" colspan="1" class="el-table_2_column_8   el-table__cell"><div class="cell"><span data-v-40f8097f="" class="el-avatar el-avatar--circle" style="height: 40px; width: 40px; line-height: 40px;"><img src="https://api.uviewui.com/uploads/6905a85f9999b705626b4410.jpeg" style="object-fit: cover;"></span></div></td><td rowspan="1" colspan="1" class="el-table_2_column_9   el-table__cell"><div class="cell">10</div></td><td rowspan="1" colspan="1" class="el-table_2_column_10   el
...[truncated 28 chars]

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The frontmatter description includes a broad activation trigger ('Invoke when user needs 快速上手 in uni-app Vue 2.x project') that is not narrowly scoped to a specific task or user intent. Overly broad trigger language can cause the agent to invoke this skill in loosely related contexts, increasing the chance of irrelevant guidance, unintended tool selection, or prompt-surface expansion from untrusted skill content.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
82% confidence
Finding

The description forces Chinese-language wording ('快速上手') without indicating multilingual support or fallback behavior. This can bias invocation toward a language-specific phrase, causing mismatches in user intent handling and potentially reducing transparency or controllability for users interacting in other languages.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The description says to invoke the skill when the user 'needs 资源' in a uni-app Vue 2.x project, but 'needs resources' is broad and could overlap with many ordinary requests for help, documentation, or downloads. It does not define specific trigger phrases, boundaries, or exclusion cases, which makes activation scope ambiguous.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The example logs the full verification code in both the change and finish callbacks, which can expose one-time codes in browser/device logs, remote debugging sessions, crash reports, or shared developer consoles. Because this component is specifically for SMS verification code entry, the logged value is authentication-sensitive, and documentation examples may be copied directly into production code without developers realizing the exposure risk.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The manifest description is written to invoke a specific component reference and prominently specifies the skill content in Chinese ('LoadMore 加载更多') without offering any language choice or documenting a locale-specific constraint. Under the policy rule, forcing a specific language or locale without user opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The documentation encourages rendering arbitrary rich-text/HTML content via content and examples show direct binding, but it does not warn that untrusted HTML can carry dangerous links, tracking resources, deceptive UI, or platform-specific script/event handling depending on the underlying parser/runtime. In a reusable UI skill, this omission can lead developers to pass user-controlled or remote content straight into the component without sanitization or allowlisting.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
85% confidence
Finding

The invocation description is broad enough to match generic requests about 'steps' in Vue or uni-app development, which can cause the agent to activate this skill outside its intended narrow scope. Over-broad triggering can lead to incorrect tool selection, context pollution, or unintended application of this component guidance when the user did not ask for uView Steps specifically.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The description names and describes the skill entirely in Chinese while defining invocation for users needing the component, which implies a fixed language/locale experience. There is no indication that the skill offers language choice or that the Chinese-only locale is a documented, justified regional constraint.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The description explicitly labels the skill as "Calendar 日历" and presents the skill content in Chinese, but does not offer any language choice or note that it is a region/language-specific resource. This can violate a language/locale policy when users are not given an opt-in to Chinese-language output.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The manifest description explicitly presents the skill as "Checkbox 复选框" documentation and the body content is entirely in Chinese, with no indication that users can opt into another language or that the skill is intended only for a Chinese-speaking region or audience. This creates a natural-language policy concern because it effectively imposes a specific language without user choice.

Content

No source excerpt is available for this finding.