CVE-2026-85625: Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution') in crcn sift.js
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.
CVSS v4.0
Score 9.2critical
Affected software
crcn
sift.js
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
sift.js versions up to 17.1.3 use for...in enumeration on query keys, which walks the prototype chain and dispatches operator keys such as $where. The $where operator compiles a string into a function using new Function unless CSP_ENABLED is set. If an attacker can perform prototype pollution to set Object.prototype.$where to a malicious string, sift.js will execute arbitrary JavaScript code during filter operations, including benign calls like sift({}). Passing an untrusted query object with a string $where also results in code execution under default settings.
Potential Impact
This vulnerability allows an attacker to execute arbitrary JavaScript code remotely without privileges or user interaction, leading to a critical security breach. The impact includes potential full compromise of applications using vulnerable sift.js versions, as arbitrary code execution can lead to data theft, system takeover, or further attacks.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. As a temporary mitigation, enable the CSP_ENABLED flag if possible to prevent the compilation of arbitrary code via the $where operator. Avoid passing untrusted query objects containing $where strings to sift.js. Monitor vendor channels for an official fix.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- VulnCheck
- Date Reserved
- 2026-09-04T11:03:33.316Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6a9adb43acd9273b49bef542
Added to database: 09/04/2026, 14:52:51 UTC
Last enriched: 09/14/2026, 22:40:36 UTC
Last updated: 10/18/2026, 06:48:20 UTC
Views: 58
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.