Skip to content
CVE PROGRAM SOURCE RECORD9.2 Critical

CVE-2026-85625

sift 17.1.3 Prototype Pollution Remote Code Execution via $where

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.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

crcn sift.js

Default version status: unaffected

  • 0 to ≤ 17.1.3affected
pkg:npm/sift

References