CVE-2026-73647 in Quasarinfo

Summary

by MITRE • 08/13/2026

Quasar Framework is a framework for building high-performance Vue.js user interfaces. Prior to 2.22.0, the public extend() utility in ui/src/utils/extend/extend.js recursively copied attacker-controlled object keys during extend(true, target, source) deep merges without rejecting an own __proto__ property. The merge could descend into the prototype object and write attacker-controlled properties to Object.prototype in the same JavaScript process. Applications that passed user-controlled or partially user-controlled objects to extend() could experience logic bypass, unsafe default-option injection, denial of service, or other application-specific impact when polluted properties were later consumed. This issue is fixed in version 2.22.0.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 08/13/2026

The Quasar Framework vulnerability represents a critical prototype pollution flaw that emerged in versions prior to 2.22.0 within the ui/src/utils/extend/extend.js utility function. This security weakness stems from inadequate validation during deep merge operations where the extend() function fails to properly sanitize attacker-controlled object keys before incorporating them into the target object through recursive copying. The vulnerability specifically manifests when applications utilize extend(true, target, source) calls with user-supplied data, creating a pathway for malicious actors to manipulate the prototype chain of JavaScript objects. The flaw operates by allowing an attacker to inject a malicious _proto_ property into the merge process, which then propagates through to Object.prototype itself within the same JavaScript execution context.

The technical implementation of this vulnerability aligns with common prototype pollution attack patterns documented in CWE-471 and follows principles outlined in ATT&CK technique T1068. When the extend() utility processes objects containing attacker-controlled _proto_ properties, it recursively traverses the object hierarchy without proper validation, enabling the malicious property to be copied into the prototype chain. This behavior occurs because JavaScript's Object.prototype is shared across all objects in the same execution environment, meaning that modifications to prototype properties affect all instances derived from that prototype. The vulnerability becomes particularly dangerous when applications pass user-supplied data directly into the extend() function without proper sanitization, as demonstrated by the potential for logic bypass through manipulation of core object properties, unsafe default-option injection that could alter application behavior, and denial of service conditions caused by prototype pollution.

The operational impact of this vulnerability extends beyond simple data corruption to encompass broader application security implications that can compromise system integrity and availability. Applications leveraging Quasar Framework versions prior to 2.22.0 face potential exploitation scenarios where attackers can manipulate core JavaScript object behaviors through prototype pollution, leading to unpredictable application states and potential privilege escalation within the execution environment. The vulnerability's severity is amplified by its ability to affect multiple layers of application logic since Object.prototype properties are inherited by all objects in JavaScript, making it particularly dangerous for frameworks that rely heavily on object manipulation and configuration patterns. Security implications include potential bypass of access controls, injection of malicious code through prototype-based attack vectors, and disruption of normal application flow through prototype property manipulation.

Mitigation strategies for this vulnerability require immediate version upgrade to Quasar Framework 2.22.0 or later where the fix properly validates and rejects _proto_ properties during deep merge operations. Organizations should also implement input sanitization practices that prevent user-controlled data from reaching extend() functions, particularly in scenarios involving configuration objects or user-supplied parameters. Additional defensive measures include monitoring for prototype pollution patterns in application logs, implementing Content Security Policy directives to limit prototype manipulation, and conducting thorough code reviews to identify all usage points of the extend utility function. The fix implemented in version 2.22.0 addresses the core issue by introducing proper validation that prevents the propagation of _proto_ properties during recursive object merging, ensuring that prototype pollution cannot occur through this specific attack vector while maintaining the utility's intended functionality for legitimate use cases.

Responsible

GitHub M

Reservation

08/13/2026

Disclosure

08/13/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Want to know what is going to be exploited?

We predict KEV entries!