CVE-2026-12866 json
expr-eval vulnerable to Code Execution
published 4mo ago modified last mo. also GHSA-q9v2-7m5w-4693 , EUVD-2026-38415
- cvss
- 9.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.9%
- EPSS 0.9% chance of exploitation in 30 days, percentile 58%
- public exploits
- 0
- none known
Summary
All versions of the package expr-eval are vulnerable to Code Execution via the toJSFunction() API. An attacker can execute arbitrary JavaScript by supplying crafted expressions that are compiled into native code using new Function(). Because user-controlled expressions are transformed directly into executable JavaScript, attackers can escape the intended expression sandbox and run arbitrary code within the application's context.
Is CVE-2026-12866 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerVendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-12866 updated cvss 4.2
expr-eval: expr-eval: Code Execution via crafted expressions in toJSFunction() API
-
Red Hat Enterprise Linux AI (RHEL AI) 3 rhelai3/bootc-cuda-rhel9, rhelai3/bootc-rocm-rhel9, rhelai3/bootc-gaudi-rhel9, rhelai3/disk-image-cuda-rhel9affected: workaround, no fix available “Fix deferred”
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- yes
- Technical impact
- total
- Assessed
- 4mo ago
Exploit prediction
0.87% chance of exploitation in the next 30 days, higher than 58% of all scored CVEs (FIRST EPSS, 2026-11-09).
Exploits and checks
- security.snyk.io https://security.snyk.io/vuln/SNYK-JS-EXPREVAL-15054690 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 9.2 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| CNA | 3.1 | 9.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | 4.0 | 9.2 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| GitHub | 3.1 | 9.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | expr-eval | <=2.0.2 |
no fix listed |
| maven | org.webjars.npm:expr-eval | <=2.0.2 |
no fix listed |
Affected products
- n/a expr-eval
- n/a org.webjars.npm:expr-eval
Classification
- Weakness
-
- CWE-94 Improper Control of Generation of Code
References
-
security.snyk.io
/vuln/SNYK-JS-EXPREVAL-15054690
exploit, web
-
security.snyk.io
/vuln/SNYK-JAVA-ORGWEBJARSNPM-17662018
web
- github.com /silentmatt/expr-eval/blob/master/src/expression.js%23L55
-
github.com
/silentmatt/expr-eval/issues/292
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-12866
advisory
-
github.com
/silentmatt/expr-eval
package
-
github.com
/silentmatt/expr-eval/blob/master/src/expression.js#L55
web
Sources
- CVE List CVE-2026-12866
- GitHub Advisory GHSA-q9v2-7m5w-4693
- NVD CVE-2026-12866
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.