CVE-2026-106101: Quasar Framework: DOM Clobbering in Quasar openURL() SafariViewController Integration Causes Client-Side Denial of Service
Quasar Framework is a framework for building high-performance Vue.js user interfaces. Prior to 2.32.2, the openURL() utility in ui/src/utils/open-url/open-url.js trusted window.SafariViewController whenever that global existed in an iOS environment. Attacker-controlled HTML rendered by components such as QEditor can create a named SafariViewController element, causing browser named-property resolution to replace the expected native bridge object. A later openURL() call then invokes isAvailable() on the element, throws a TypeError, and disrupts external navigation, login redirects, payment redirects, and other URL-opening workflows. QSelect and QChatMessage HTML-rendering configurations can expose the same trigger when they render attacker-controlled HTML. This issue is fixed in version 2.32.2.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Quasar Frameworkto a version that resolves this vulnerability.Fixed in 2.32.2
Event History
Frequently Asked Questions
Which applications are exposed to this issue?
Applications using Quasar versions before 2.32.2 are exposed when attacker-controlled HTML can be rendered through components such as QEditor. QSelect and QChatMessage can also expose the issue when configured to render attacker-controlled HTML.
What conditions are required for exploitation?
An attacker must be able to cause controlled HTML to be rendered and must create a named SafariViewController element. The affected URL-opening flow must then run in an iOS environment where the openURL() utility uses the clobbered global.
What is the practical impact?
The clobbered SafariViewController value causes a later openURL() call to throw a TypeError when it invokes isAvailable(). This can disrupt external navigation and URL-opening workflows, including login and payment redirects.
How should this be remediated?
Upgrade Quasar Framework to version 2.32.2, which fixes the issue. Until upgrading, avoid rendering attacker-controlled HTML in affected components where possible.