CVE-2026-93753
deepmerge: deepmerge: Prototype Poisoning via mergeObject function
Severity
ImportantRed Hat Product Security
CVSS 3.1
Review impact separately from score.
Published · September 19, 2026
Updated · November 4, 2026
Description
A flaw was found in deepmerge. This vulnerability, known as prototype poisoning, allows an attacker to inject malicious properties into an application's object prototype. This occurs in the mergeObject() function due to insufficient validation of keys during object merging. By supplying specially crafted input, an attacker can cause applications to inherit unintended values, which may lead to arbitrary code execution or other impacts.
Statement
A prototype poisoning vulnerability was discovered in the deepmerge library within the mergeObject() function. By supplying a maliciously crafted object containing prototype-modifying keys (such as proto or constructor.prototype) to merge operations, an attacker can inject arbitrary properties directly into the application's global object prototype. In Red Hat environments executing Node.js runtimes, this allows untrusted input to alter runtime object states and cause applications to inherit unintended values, potentially resulting in altered application behavior, denial of service, or unauthorized state modification.
CVSS score applicability
The CVSS score(s) listed for this vulnerability do not reflect the associated product's status, and are included for informational purposes to better understand the severity of this vulnerability.
Mitigation
Sanitize incoming untrusted JSON objects to strip prototype-polluting keys such as proto and constructor prior to merging, or execute Object.freeze(Object.prototype) at application startup to prevent runtime modifications.
CVSS / CWE
CVSS 3.1 · 7.5CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
CWE-915 · Improperly Controlled Modification of Dynamically-Determined Object Attributes