CVE-2026-85625
8.1crcn · sift.js
sift.js is vulnerable to remote code execution due to improper enumeration of query keys, which allows execution of arbitrary JavaScript via prototype pollution or malicious query objects.
Executive summary
The sift.js library is vulnerable to remote code execution (RCE) because it improperly handles object prototype attributes, allowing attackers to inject malicious code through the $where operator.
Vulnerability
The library uses a for...in loop to enumerate query keys, which traverses the object prototype chain and dispatches matched operators, including $where. An attacker can leverage this to execute arbitrary JavaScript by injecting a malicious string into the prototype or by passing a crafted query object, as the library uses the new Function constructor by default.
Business impact
The ability to execute arbitrary JavaScript within the application context presents a critical risk to business operations. A successful exploit could lead to full system compromise, unauthorized data access, or the deployment of persistent threats within the server environment. Given the high CVSS score of 8.1, this vulnerability poses a significant threat to data integrity and system confidentiality.
Remediation
Immediate Action: Update the sift.js library to the latest version that includes the fix for prototype pollution and the restricted execution of the $where operator.
Proactive Monitoring: Review application logs for unusual query patterns, specifically those containing $where operators or unexpected object prototype modifications.
Compensating Controls: Enable Content Security Policy (CSP) headers to restrict the execution of inline scripts and dynamic function creation, which can mitigate the impact of this code execution flaw.
Exploitation status
Public Exploit Available: No (exploit_available: false)
Analyst recommendation
This vulnerability is highly severe because it allows for remote code execution through standard library usage. Organizations using sift.js must prioritize upgrading to a patched version immediately. If an update is not feasible, ensure that the application environment is hardened with strict CSP policies to prevent the execution of untrusted dynamic code.
Sources
Originally found and disclosed by George Chen, per the CVE Program record.
- GitHub Issue #276 Issue tracker
- github.com
- Technical analysis
- VulnCheck Advisory: sift 17.1.3 Prototype Pollution Remote Code Execution via $where Third-party advisory