Back to skill

Security audit

Huo15 Openclaw Frontend Design

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent frontend design helper, but its verification workflow can run mutable third-party code in a browser or shell, so users should review it before installing.

Install only if you are comfortable reviewing the verification steps before use. Prefer running audits against local prototypes or a dedicated browser profile without production logins, and replace the CDN axe-core and unpinned npx examples with pinned or lockfile-managed local tooling.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T08 · Insecure Dependencies

Warning
Location
references/self-verify.md:98
Finding

Unpinned packages may be downloaded and executed through npx

Content
View full analysis
--only-categories=accessibility --output=html --output-path=./a11y-report.html --chrome-flags="--headless" ``` ```bash # Desktop npx playwright-core screenshot ~/verify.png --viewport-size=1440,900 # iPhone 16 Pro npx playwright-core screenshot ~/verify-iphone.png --viewport-size=393,852 # Pixel 8 npx playwright-core screenshot ~/verify-android.png --viewport-size=412,915 # HarmonyOS Mate 60 npx playwright-core screenshot ~/verify-harmony.png --viewport-size=396,858 ``` ### Technical Analysis The verification workflow instructs users to invoke `lighthouse` and `playwright-core` through `npx` without specifying exact versions. The repository does not contain a package manifest or lockfile establishing reviewed versions of these tools. When the requested package is unavailable locally, `npx` can retrieve and execute a package from the configured npm registry. Consequently, the code executed during verification is not necessarily the same code that existed when this Skill was audited. Package compromise, registry compromise, a malicious registry configuration, or a future package release containing unsafe behavior could therefore turn a routine verification command into local code execution. The package names are legitimate and there is no evidence that the Skill intentionally selects malicious dependencies. The issue is the mutable, unverified dependency resolution process. ### Attack Path 1. A user follows the Skill's accessibility or screenshot verification instructions. 2. The requested package is not already installed in a locked local dependency tree. 3. `npx` resolves the unversioned packa ...[truncated 1106 chars]
Remediation
View remediation
... npx --yes playwright@ ... ``` 5. Document the expected npm registry and use package-integrity verification, dependency review, and automated vulnerability scanning. 6. Run browser-verification tools in a restricted environment without production credentials or unrelated sensitive files. ]]>

T03 · Remote Payload Retrieval and Execution

Warning
Location
references/self-verify.md:78
Finding

Accessibility workflow downloads and executes a remote script without integrity verification

Content
View full analysis
, code: ` const s = document.createElement('script'); s.src = 'https://cdnjs.cloudflare.com/ajax/libs/axe-core/4.10.0/axe.min.js'; document.head.appendChild(s); await new Promise(r => s.onload = r); return await axe.run({ runOnly: ['wcag2aa', 'wcag22aa'] }); ` }) ``` ### Technical Analysis The accessibility workflow dynamically creates a `
Remediation
View remediation
'; s.crossOrigin = 'anonymous'; ``` 5. Add `onerror` handling, a timeout, and validation of the loaded API before execution. 6. Perform audits in a dedicated browser profile without unrelated authenticated sessions, sensitive extensions, or production credentials. 7. Restrict the workflow to expected origins and clearly warn users before injecting code into authenticated applications. ]]>
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • 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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (47)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The declared description presents a large, feature-rich design and prototyping skill spanning many platforms and capabilities. The supplied code chunk only implements a minimal Alipay mini-program page controller with hardcoded product data and a tap handler that logs an ID. Its primary purpose is a basic demo/product-list interaction, not systematic UI generation, design-token management, accessibility auditing, motion design, or cross-platform rendering. This is therefore a strong description-to-behavior mismatch.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The declared description presents a broad, advanced design/prototyping and accessibility-auditing skill spanning many platforms and export targets. The supplied code does not implement any of those capabilities. It is only a small WeChat mini-program page controller containing hardcoded product data and a tap handler that logs an ID. While the description mentions WeChat mini-programs, this code chunk is far too narrow and functionally different from the claimed primary purpose. The actual behavior is basic sample page interaction logic, not a system for generating high-fidelity UI, design tokens, motion systems, cross-platform outputs, or accessibility audits.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

Very broad aliases and trigger phrases increase the chance that the skill is invoked for unrelated requests, causing prompt/context hijacking at the orchestration level. In an agent system, accidental activation can route user data and task authority into the wrong skill, which may produce inappropriate actions, code, or external-tool recommendations outside intended scope.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

Aliases like '前端设计', 'UI 设计', '页面设计', and 'Web 设计' are so generic that they can preempt more appropriate skills and unintentionally bind broad classes of user prompts. In agent environments, overbroad routing materially increases attack surface because malicious or sensitive requests may be funneled into a skill with unnecessary tool guidance or different safety assumptions.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

Using '任何美化页面/优化UI类请求' as a trigger condition makes the activation boundary extremely fuzzy. In a multi-skill agent, this can capture generic requests that should go elsewhere, increasing the risk of unintended tool use, context confusion, and policy bypass through skill overreach.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

A large trigger-word section full of broad phrases without systematic exclusions encourages false-positive activation across many ordinary product/design conversations. In the context of this skill, that is more dangerous because the document also recommends external verification tooling and cross-skill handoffs, so erroneous invocation can cascade into unnecessary tool suggestions and cross-context contamination.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The entire skill description is written in Chinese and includes Chinese-specific terminology and style requirements, but it does not offer any language choice or indicate that the skill is intentionally limited to Chinese-speaking users. Under the stated policy, 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

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The document declares lang="zh", indicating the skill is explicitly configured for Chinese. Under the policy rules, forcing a specific language without user opt-in or a clearly documented regional justification is a natural-language policy concern.

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 sets lang="zh", and all visible UI text is presented in Chinese, which indicates a fixed language choice. Under the stated policy, forcing a specific language without user opt-in or documented justification 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

Line L002 sets the document language to zh, and the visible UI text throughout the page is Chinese-only. This is a natural-language locale policy concern because the file imposes a specific language without any indication of user opt-in or a documented region-specific requirement.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

该 Markdown 文档全文以中文编写,并包含强制性规范措辞,但没有说明这是面向特定中文用户群、特定区域合规要求,或提供语言选择/英文替代。根据规则,强制特定语言而无用户 opt-in 或明确正当化,属于自然语言层面的语言/locale 策略风险。

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
82% confidence
Finding

整份技能文档以中文作为唯一操作说明与交互范式,且未说明是否支持其他语言或允许按用户偏好切换。根据该规则,若技能隐含强制特定语言而无用户选择或明确的区域性理由,可构成语言/locale 政策问题。

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger guidance includes broad conversational phrases such as '帮我选' and '你定', which can cause the skill to activate outside the user's clear intent to invoke a multi-genre design-comparison workflow. In an agent setting, over-broad activation increases the chance of unintended file generation, screenshot actions, and follow-on tooling behavior without sufficiently explicit user consent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The document instructs deletion of the other two draft outputs after a direction is selected, but it does not require user confirmation, backup, or safe-delete behavior. In an agentic environment this can lead to unintended loss of work product, especially if the drafts contain user-edited content or need to be retained for audit/comparison.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding

The document instructs users to run npx lighthouse without pinning an exact package version. Because npx may fetch the latest package from the registry at execution time, this creates a supply-chain risk where behavior can change unexpectedly or a compromised upstream release could execute unreviewed code on the user's machine.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The skill tells users to execute npx playwright-core screenshot ... without a pinned version. Unpinned npx usage can download and run whatever version is current at the time, exposing users to supply-chain compromise and non-deterministic behavior during verification workflows.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

This line again uses npx playwright-core without version pinning in a mobile verification command. In this skill context, the command is meant for end users to run locally, which increases the practical risk of executing unreviewed remote package code if the upstream package or dependency chain is altered.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

This command repeats the same unpinned npx playwright-core pattern. Even though the stated purpose is harmless screenshot verification, the delivery mechanism still allows execution of mutable third-party code, making the issue a real supply-chain exposure rather than a mere documentation nit.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The final Playwright example is also unpinned, so users may execute a different package version than the author intended. Repeated unsafe examples increase the chance of copy-paste adoption, and in a verification workflow they normalize running mutable tooling directly from the registry.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.