critical9.8
CVE-2025-12735
expr-eval does not restrict functions passed to the evaluate function
Impact
The expr-eval library is a JavaScript expression parser and evaluator designed to safely evaluate mathematical expressions with user-defined variables. However, due to insufficient input validation, an attacker can pass a crafted variables object into the evaluate() function and trigger arbitrary code execution.
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| npm | expr-eval | <= 2.0.2 | none recorded |
| npm | expr-eval-fork | <= 3.0.0 | 3.0.1 |
Affected products
| Vendor | Product | Affected versions |
|---|---|---|
| Jorenbroekema | Javascript Expression Evaluator | Version 3.0.0 |
| Silentmatt | Javascript Expression Evaluator | through 2.0.2 |
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://github.com/advisories/GHSA-jc85-fpwf-qm7x
- https://github.com/jorenbroekema/expr-eval
- https://github.com/silentmatt/expr-eval
- https://github.com/silentmatt/expr-eval/pull/288
- https://kb.cert.org/vuls/id/263614
- https://www.npmjs.com/package/expr-eval
- https://www.npmjs.com/package/expr-eval-fork
- https://www.kb.cert.org/vuls/id/263614
- https://github.com/jorenbroekema/expr-eval/blob/460b820ba01c5aca6c5d84a7d4f1fa5d1913c67b/test/security.js
- https://nvd.nist.gov/vuln/detail/CVE-2025-12735
- https://github.com/jorenbroekema/expr-eval/commit/1d71bb2ca8f98df8de00e9cc4de8fdd468a7ad43
- https://github.com/silentmatt/expr-eval/pull/289