Skip to content
OpenAdvisories
High · 8.1 Public exploit CVE-2026-85625 EUVD-2026-71232GHSA-8pfg-3p4c-36vm

sift 17.1.3 Prototype Pollution Remote Code Execution via $where

Published Sep 4, 2026 · Updated Sep 14, 2026 · Assigned by VulnCheck

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

VendorProductAffectedFixed
crcn sift.js ≤ 17.1.3 —

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 1 repository

  • lgranadoi/sift-hardened ★ 0 · Sep 8, 2026

    Security-hardened fork of sift 17.1.3 for CVE-2026-85625. Not affiliated with crcn/sift.js.

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

References