xe-utils Prototype Pollution Vulnerability Leading to Denial-of-Service

Vulnerability

A prototype pollution vulnerability has been identified in the xe-utils library, specifically in version 3.5.31. The issue arises in the 'lib.merge' function, where attackers can supply a crafted payload to introduce or modify properties within the global prototype chain. This manipulation can cause a denial-of-service condition and potentially escalate to other injection-based attacks, depending on how xe-utils is integrated within the application. For example, if the polluted property affects sensitive Node.js APIs like 'exec' or 'eval', it could allow execution of arbitrary commands in the application's context.

Impact

Exploitation of this vulnerability leads to prototype pollution, causing a denial-of-service condition at a minimum. However, it could also allow for other injection-based attacks, particularly if the polluted prototype interacts with sensitive Node.js APIs.

Reproduction

The vulnerability can be reproduced by importing the xe-utils library and using the 'lib.merge' or 'lib.set' functions to inject a payload into the '__proto__' property of an object. This payload can then be used to manipulate the prototype chain, as demonstrated in the provided proof-of-concept code.

Added: Jun 9, 2025, 7:46 PM
Updated: Jun 9, 2025, 7:46 PM

Vulnerability Rating

Custom Algorithm
spread
0.0
impact
7.5
exploitability
8.7
remediation
0.0
relevance
0.0
threat
6.4
urgency
2.9
incentive
5.8

Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.