Back to skill

Security audit

HTML Code Painting

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent code-art helper with local preview tools and no evidence of hidden persistence, exfiltration, or privilege escalation.

Reasonable to install if you want a Chinese-language skill for generating code-based artwork. Use a virtual environment if installing Pillow or NumPy, and only paste artwork HTML you trust into the comparison workbench because active HTML can run in your browser.

Vulnerability Patterns
  • 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
  • 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 (2)

T08 · Insecure Dependencies

Note
Location
scripts/analyze_reference.py:14
Finding

Unpinned Pillow Dependency Installation

Content
View full analysis
Remediation
View remediation
--hash=sha256: ``` 5. Document the expected package index and recommend disabling untrusted extra indexes. 6. Periodically review and deliberately update the pinned version and hashes after security testing. ]]>

T08 · Insecure Dependencies

Note
Location
scripts/preview_canvas.py:18
Finding

Unpinned NumPy and Pillow Dependency Installation

Content
View full analysis
Remediation
View remediation
--hash=sha256: Pillow== --hash=sha256: ``` 6. Avoid untrusted `--extra-index-url` settings and document the approved package source. 7. Establish a controlled update process that reviews new versions before changing the lock file. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (13)

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

代码的核心功能是一个配套调试/预览工具:在没有浏览器环境时,把 HTML 中的 Canvas 绘制逻辑手工翻译到 Python 中,再用 Pillow+numpy 生成 PNG 供视觉自查。它确实与“代码绘画”领域相关,但并不实现声明中的主要交付物和工作方式。声明强调的是直接用 HTML/SVG/Canvas/CSS 生成单文件网页画作;而实际代码是 Python 脚本,读取内置配置后渲染示例画面并保存多张 PNG 诊断图。两者在主要目的、技术栈和输出形式上都有明显差异,因此应判定为描述与行为不一致。

Content

No source excerpt is available for this finding.

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · assets/artwork-studio.html (reported line 6)May include surrounding context.

html
<head>
<meta charset="UTF-8">
<title>画作还原对比工作台</title>
<!--
  artwork-studio.html — html-code-painting 技能配套校验模板
  用法:
    1. 把 <原图BASE64> 替换为参照图的 base64(data:image/jpeg;base64,...)

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · assets/artwork-studio.html (reported line 6)May include surrounding context.

html
<head>
<meta charset="UTF-8">
<title>画作还原对比工作台</title>
<!--
  artwork-studio.html — html-code-painting 技能配套校验模板
  用法:
    1. 把 <原图BASE64> 替换为参照图的 base64(data:image/jpeg;base64,...)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest description is entirely written in Chinese and presents the skill behavior in that locale without any indication that the user may choose another language. Under the policy, language or locale constraints should either be optional or clearly justified as region-specific; neither is stated here.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The template injects arbitrary HTML into the DOM via innerHTML from the ARTWORK_HTML placeholder. In this skill’s context, the inserted 'artwork' is effectively untrusted code/content supplied during use, so it can include scripts, event handlers, iframe/object tags, or active content that executes in the opened HTML file, leading to XSS-like code execution in the local browser context and possible data exfiltration or unsafe local/network interactions.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The entire skill is written only in Chinese and provides no indication that language choice is optional or configurable. Under the policy for natural-language violations, forcing a specific language without user opt-in is reportable unless the locale constraint is clearly documented and justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The entire skill document is written in Chinese and does not indicate that other languages are supported or that the user can opt into this locale. Under the stated policy, forcing a specific language without user choice is a natural-language policy violation unless clearly justified as region-specific.

Content

No source excerpt is available for this finding.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding

Suspicious Unicode normalization or mixed-script content

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The file title and all instructional content are exclusively in Chinese, and line L04 uses mandatory language such as “以此为准绳” and “不得随性漂移,” leaving no indication that users may choose another language or locale. Under the stated policy, forcing a specific language without opt-in 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
97% confidence
Finding

This file contains natural-language interface text, usage instructions, and output descriptions exclusively in Chinese, which effectively forces a specific language for users. Under the policy, language constraints should either offer user choice or be clearly documented as justified for a region-specific tool.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

The HTML declares lang="zh-CN" and all visible interface text is written in Chinese, with no indication that other languages are supported or that this locale restriction is optional. 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
92% confidence
Finding

This markdown file contains user-facing instructional content exclusively in Chinese, and nowhere indicates that the skill is region-specific or that users may choose another language. Under the policy rule for natural-language violations, forcing a specific language without opt-in is a reportable issue.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

The entire document is written in Chinese and includes prescriptive guidance such as '注释中文说明', which imposes a specific language convention. There is no indication that Chinese is optional, user-selected, or justified as a region-specific requirement, which matches the locale-policy violation criteria.

Content

No source excerpt is available for this finding.