CVE-2026-12866 json
expr-eval vulnerable to Code Execution
published 2026-06-23 4 mo ago modified 2026-09-22 47 d ago 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.
Vendor 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
- 4 mo ago
Exploit prediction
0.87% chance of exploitation in the next 30 days, higher than 58% of all scored CVEs (FIRST EPSS, 2026-11-08).
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 Vulns 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.