Summary
Quasar Framework: App Vite SSR and SSG nonce attributes are not safely constrained
Advisory details
Several @quasar/app-vite SSR and SSG renderer paths interpolate ssrContext.nonce directly into quoted HTML attributes. An application that derives or overrides the nonce using untrusted data can allow a quote to terminate the nonce attribute and inject additional attributes or markup into generated HTML.
Cryptographically generated base64 or base64url nonces are not directly affected because they do not contain HTML attribute delimiters. Exploitation requires an application to place attacker-controlled or otherwise unsafe data in ssrContext.nonce.
The remediation centralizes nonce handling across development SSR/SSG, production SSR, production SSG, critical CSS, store-state scripts, and Vue Devtools. It validates the value as a non-empty base64/base64url CSP nonce and HTML-encodes the attribute value before rendering.
References
- https://github.com/advisories/GHSA-5m6h-8g35-p3m7
- https://github.com/quasarframework/quasar/security/advisories/GHSA-5m6h-8g35-p3m7
- https://nvd.nist.gov/vuln/detail/CVE-2026-106107
- https://github.com/quasarframework/quasar/commit/91271c38859bec51e154b60c24497a637ce903d7
- https://github.com/quasarframework/quasar/releases/tag/@quasar/app-vite-v3.3.0
Related vulnerabilities
All Supply chain →- CRITICALCVE-2026-104252
Vitess vttablet /twopcz reflected XSS
- MEDIUMCVE-2026-104250
unstructured: Stored XSS via unescaped HTML generation
- CRITICALCVE-2026-107845
Contao: Cross-site scripting in the comments bundle
- CRITICALCVE-2026-106102
Quasar Framework: Stored/Reflected XSS via unescaped SSR meta tag rendering in getHead()
- HIGHGHSA-g2v6-rqmx-r4w6
@vue/server-renderer: XSS via missing CR in attribute-name blacklist
- HIGHCVE-2026-88058
Angular SSR: XSS via Unescaped Processing Instruction (<?...?>) Nodes in Fallback Raw-Content Elements