Quasar: Prototype pollution in the extend() utility
Quasar version 2.20.1 and earlier are vulnerable to prototype pollution via the public extend() utility. The vulnerability occurs during deep merge operations where attacker-controlled keys such as __proto__, constructor, or prototype are not blocked, allowing modification of Object.prototype. This can lead to application-specific impacts such as logic bypass or denial of service if polluted properties are used unsafely.
AI Analysis
Technical Summary
The Quasar package (npm) exports an extend() utility that performs deep merging of objects. In versions prior to 2.22.0, when extend(true, target, source) is called, the function recursively copies keys from the source to the target without filtering out prototype-pollution primitives like __proto__, constructor, or prototype. This allows an attacker to inject properties into Object.prototype, affecting all objects in the JavaScript environment. The vulnerability is demonstrated by a proof-of-concept where extend() is used to add a 'polluted' property to Object.prototype, which then appears on all objects. The suggested fix is to reject or ignore dangerous keys and avoid descending into prototype-related properties during the merge.
Potential Impact
If an application uses extend(true, ...) with user-controlled or partially user-controlled input, an attacker can modify Object.prototype properties. This may cause logic bypass, unsafe default option injection, denial of service, or other application-specific security issues depending on how the polluted properties are consumed. The vulnerability affects confidentiality, integrity, and availability to a limited extent as indicated by the CVSS vector.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, avoid passing untrusted or user-controlled objects to extend(true, ...). Implement input validation to exclude prototype-pollution keys such as __proto__, constructor, and prototype before merging. Monitor vendor channels for an official fix or update to Quasar version 2.22.0 or later once released.
Quasar: Prototype pollution in the extend() utility
Description
Quasar version 2.20.1 and earlier are vulnerable to prototype pollution via the public extend() utility. The vulnerability occurs during deep merge operations where attacker-controlled keys such as __proto__, constructor, or prototype are not blocked, allowing modification of Object.prototype. This can lead to application-specific impacts such as logic bypass or denial of service if polluted properties are used unsafely.
CVSS v3.1
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The Quasar package (npm) exports an extend() utility that performs deep merging of objects. In versions prior to 2.22.0, when extend(true, target, source) is called, the function recursively copies keys from the source to the target without filtering out prototype-pollution primitives like __proto__, constructor, or prototype. This allows an attacker to inject properties into Object.prototype, affecting all objects in the JavaScript environment. The vulnerability is demonstrated by a proof-of-concept where extend() is used to add a 'polluted' property to Object.prototype, which then appears on all objects. The suggested fix is to reject or ignore dangerous keys and avoid descending into prototype-related properties during the merge.
Potential Impact
If an application uses extend(true, ...) with user-controlled or partially user-controlled input, an attacker can modify Object.prototype properties. This may cause logic bypass, unsafe default option injection, denial of service, or other application-specific security issues depending on how the polluted properties are consumed. The vulnerability affects confidentiality, integrity, and availability to a limited extent as indicated by the CVSS vector.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, avoid passing untrusted or user-controlled objects to extend(true, ...). Implement input validation to exclude prototype-pollution keys such as __proto__, constructor, and prototype before merging. Monitor vendor channels for an official fix or update to Quasar version 2.22.0 or later once released.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-3r53-75j5-3g7j
- Osv Schema Version
- 1.4.0
- Aliases
- []
- Ecosystems
- ["npm"]
- Database Specific Severity
- MODERATE
- Cvss Version
- 3.1
Threat ID: 6a6542199c2644c7f8087e31
Added to database: 07/25/2026, 23:09:13 UTC
Last enriched: 07/25/2026, 23:49:07 UTC
Last updated: 07/26/2026, 05:03:29 UTC
Views: 5
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.