Skip to main content

Merge EUVDEUVD-2026-23742

| CVE-2026-6594 MEDIUM
Improperly Controlled Modification of Object Prototype Attributes (Prototype Pollution) (CWE-1321)
2026-04-20 VulDB GHSA-3jc6-6r48-v6qf
6.9
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send HTTP request with __proto__ payload
  2. Delivery
    Application parses JSON via brikcss merge
  3. Exploit
    Prototype pollution modifies Object.prototype
  4. Execution
    Injected properties inherited globally
  5. Impact
    Bypass authorization checks or trigger information disclosure

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V3 - Web Frontend Security Prototype pollution prevention
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the target application to use brikcss merge library versions 1.0 through 1.3.0 AND process attacker-controlled input through merge operations without sanitizing prototype chain-related keys (__proto__, constructor.prototype, prototype). Vulnerable code patterns include: merging user-submitted JSON/form data into configuration objects, processing API request bodies with merge functions, or integrating third-party data sources into application state. The CVSS vector AV:N/AC:L/PR:N/UI:N confirms no authentication, user interaction, or special network position is required - default configurations are exploitable if the library is in use with external data ingestion. Limiting factors: applications that validate input keys against an allowlist, use Object.create(null) for merged targets, or employ frozen prototypes are NOT vulnerable. Exploitation impact depends on how polluted properties propagate through application logic: highest risk in authentication/authorization code paths, configuration management, or template rendering engines.

Impact

Real-world risk is MODERATE-TO-HIGH despite the 7.3 CVSS score. The CVSS vector (AV:N/AC:L/PR:N/UI:N) indicates remote exploitation requiring no authentication or user interaction, with low attack complexity - favorable conditions for attackers. However, actual impact (C:L/I:L/A:L) is rated low across all CIA triad dimensions because prototype pollution's severity depends heavily on application-specific context: how polluted properties propagate through the codebase. The publicly available PoC from sudo-secure on GitHub confirms exploitability is proven, lowering the barrier to weaponization. No CISA KEV listing suggests this is not yet observed in widespread active exploitation, likely because brikcss merge has a smaller user base compared to mainstream libraries. EPSS data is not provided, limiting probability assessment. Key risk factors: (1) vendor non-responsiveness means no official patch or advisory exists; (2) the library appears unmaintained; (3) transitive dependencies could expose larger applications unknowingly. Organizations using this library in externally-facing applications processing untrusted input face immediate risk. The SSVC technical impact is likely PARTIAL (can affect application security boundaries) and automatable (straightforward exploitation via HTTP payloads). Priority: HIGH for environments using affected versions with external data ingestion; MEDIUM for internal-only deployments with input validation.

Exploit ScenarioDerived

An attacker identifies a web application using brikcss merge 1.3.0 to process user-submitted JSON configuration data. They craft a malicious HTTP POST request containing a payload like {"__proto__": {"isAdmin": true}} or {"constructor": {"prototype": {"authenticated": true}}}. When the application merges this untrusted input with existing objects, the injected properties pollute Object.prototype globally. Subsequent authorization checks or privilege validations that rely on object properties (e.g., if(user.isAdmin)) now inherit the attacker's injected values, enabling authentication bypass or privilege escalation. Alternatively, the attacker injects properties that cause denial of service when accessed or leak sensitive configuration data through error messages. Public PoC code from sudo-secure provides ready-to-use exploitation templates, significantly lowering attacker skill requirements.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Apr 20, 2026

Prototype pollution in brikcss merge library versions 1.0 through 1.3.0 enables remote unauthenticated attackers to inject malicious properties into JavaScript Object prototypes via crafted __proto__, constructor.prototype, or prototype arguments, potentially leading to information disclosure, authentication bypass, or denial of service. Publicly available exploit code exists (GitHub PoC from sudo-secure). CVSS 7.3 with network vector and no authentication required. Vendor unresponsive to disclosure attempts.

RemediationAI

No vendor-released patch exists for brikcss merge as of this analysis - the maintainer did not respond to disclosure. Primary mitigation: REMOVE brikcss merge from dependencies and replace with actively maintained alternatives such as lodash.merge (with prototype pollution protections enabled), deepmerge (version 4.3.1+), or @fastify/deepmerge. For applications unable to immediately migrate, implement compensating controls: (1) Input validation - sanitize all user-controlled data before passing to merge operations by explicitly blocking keys matching __proto__, constructor, and prototype using allowlist validation; (2) Object.freeze(Object.prototype) at application startup to prevent prototype modification (note: this may break legitimate code relying on prototype extension); (3) Use Object.create(null) for objects passed to merge functions to avoid prototype chain inheritance; (4) Deploy runtime application self-protection (RASP) or web application firewall (WAF) rules to detect and block payloads containing prototype pollution patterns in JSON/form data. Trade-offs: Object.freeze may cause compatibility issues with older libraries; input sanitization adds processing overhead and must cover all entry points. Refer to the public PoC at github.com/sudo-secure/security-research/blob/main/brikcss-merge/prototype-pollution/PoC.md to understand attack patterns for detection rule development.

Affected VersionsENISA

merge 1.2
merge 1.0
merge 1.3.0
merge 1.1

Affected Packages

npm @brikcss/merge no fix
euvd merge no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in npm, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Brikcss merge is a JavaScript utility library for merging objects and arrays. The vulnerability stems from CWE-1321 (Improperly Controlled Modification of Object Prototype Attributes), commonly known as prototype pollution. This occurs when user-controlled input can modify Object.prototype or constructor.prototype without proper sanitization. In JavaScript, all objects inherit from Object.prototype, so polluting this base prototype affects all objects in the application runtime. Attackers can inject properties like __proto__, constructor.prototype, or prototype with malicious values during merge operations. The affected product is identified via CPE as cpe:2.3:a:brikcss:merge covering all versions through 1.3.0. Prototype pollution is a critical vulnerability class in JavaScript ecosystems because it can bypass security controls, enable privilege escalation, cause denial of service through property injection, or leak sensitive information depending on how the polluted properties are used downstream in application logic.

Know when Merge gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulDB) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (VulDB) · only source for this CVE.

CVSS VectorVendor: VulDB

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

4
PoC Detected
Apr 22, 2026 - 20:22 vuln.today
Public exploit code
Severity Changed
Apr 20, 2026 - 02:22 NVD
HIGH MEDIUM
CVSS changed
Apr 20, 2026 - 02:22 NVD
7.3 (HIGH) 6.9 (MEDIUM)
CVE Published
Apr 20, 2026 - 01:45 nvd
MEDIUM 6.9

DescriptionCVE.org

A vulnerability was determined in brikcss merge up to 1.3.0. This affects an unknown part. Executing a manipulation of the argument __proto__/constructor.prototype/prototype can lead to improperly controlled modification of object prototype attributes. The attack may be performed from remote. The vendor was contacted early about this disclosure but did not respond in any way.

Executive ViewAI

Why It Matters

The brikcss merge library (versions 1.0-1.3.0) contains a prototype pollution vulnerability that allows unauthenticated remote attackers to inject malicious properties into application objects, potentially enabling authentication bypass, data theft, or service disruption. Organizations using this library in production environments face immediate risk of application compromise without vendor-provided remediation.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Implement strict input validation to sanitize or reject objects containing __proto__, constructor.prototype, or prototype keys before passing to merge operations; (2) Disable or restrict merge functionality if non-essential; (3) Run applications with Node.js --no-warnings flag and Object.freeze(Object.prototype) where feasible to limit prototype mutation scope; (4) Deploy WAF rules to detect and block requests with prototype pollution payloads; (5) Migrate to maintained alternative libraries with security audits. Library maintainer is unresponsive-prioritize dependency replacement.

Threat Intelligence Overview

EPSS Score
0.0%
Top 87% exploitable
Exploit
POC
Public exploit code exists
Social Media
2
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.0%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

54
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy