CyberRota Analysis
AI-GeneratedThe vulnerability affects the sift.js library in Java, where improper enumeration of query keys allows for prototype pollution, enabling attackers to execute arbitrary JavaScript code. This occurs when the $where operator is used without proper Content Security Policy (CSP) settings, which are not enabled by default. Organizations using sift.js, particularly those handling untrusted input, should prioritize patching this vulnerability to mitigate the risk of code execution attacks.
Public Exploit Signal
A public exploit, PoC, GitHub repository or Metasploit reference was detected for this CVE.
Note: these links are listed for security research and verification purposes only.
Original NVD Description
sift (sift.js) 17.1.3 enumerates query keys with for...in, which walks the object prototype chain, and dispatches any matched operator key including $where. The $where operation compiles a string value into a function using new Function unless CSP_ENABLED is set (not set by default). As a result, if a prototype-pollution primitive elsewhere in the process sets Object.prototype.$where to a malicious string, even benign filter calls such as sift({}) execute arbitrary JavaScript. Additionally, passing an untrusted query object containing a string $where directly to sift results in code execution under the default configuration.