What is Firefox's IonMonkey JIT Compiler?
IonMonkey is the optimizing just-in-time (JIT) compiler inside Mozilla's SpiderMonkey JavaScript engine, used by both Firefox and Thunderbird (which shares Firefox's rendering/JS engine for HTML mail). JIT compilers convert JavaScript into optimized machine code at runtime for performance, but the aggressive optimizations they perform — including assumptions about how array elements alias each other in memory — have repeatedly been a source of serious memory-safety vulnerabilities across all major browsers.
Overview
CVE-2019-17026 is a type confusion vulnerability in Firefox and Thunderbird's IonMonkey JIT compiler, caused by incorrect alias analysis when setting elements in certain arrays. An attacker who can get a victim to load malicious JavaScript — through a compromised or malicious website in Firefox, or an HTML email in Thunderbird — can exploit the type confusion to corrupt memory and achieve remote code execution in the context of the browser/mail client. Mozilla rated it Critical, with CVSS 3.1 base score 8.8.
Technical Details
This is CWE-843 (Type Confusion / Access of Resource Using Incompatible Type). IonMonkey's optimizer makes assumptions about which object types can alias a given memory location when generating optimized code for array-element assignment; when those assumptions are wrong for certain crafted JavaScript patterns, the engine can be tricked into treating one object type's memory layout as another's, giving an attacker a powerful memory-corruption primitive that is often reliable enough to convert into arbitrary code execution without needing a separate information leak.
Discovery
Mozilla shipped emergency fixes in Firefox 72.0.1 and Firefox ESR 68.4.1 in early January 2020, describing the flaw as being actively exploited in the wild at the time of patching. Security researchers, including those at Qihoo 360, reported observing exploitation of this and related Firefox zero-days as part of narrowly targeted attack campaigns around that period.
Exploitation Context
CISA added CVE-2019-17026 to the KEV catalog in November 2021, consistent with Mozilla's own disclosure that it was exploited in the wild prior to patch availability. As a JIT type-confusion bug in a major browser engine, it represented a high-value capability for attackers running targeted intrusion campaigns, typically delivered via watering-hole websites or spear-phishing links rather than mass, indiscriminate exploitation.
Remediation
- Update Firefox to version 72.0.1 or later (or Firefox ESR to 68.4.1 or later), which resolves CVE-2019-17026.
- Update Thunderbird to a version incorporating the corresponding SpiderMonkey/IonMonkey fix.
- Enable automatic updates for Firefox and Thunderbird to ensure future security patches are applied promptly, given this vulnerability's history of in-the-wild exploitation before a fix was available.
- Consider browser isolation or sandboxing technology for high-risk users (executives, activists, journalists) who may be targeted by watering-hole or spear-phishing campaigns using browser zero-days.
- Review endpoint and network logs for signs of compromise if unpatched Firefox/Thunderbird installations were in use during the exposure window before January 2020.
Key Details
| Property | Value |
|---|---|
| CVE ID | CVE-2019-17026 |
| Vendor / Product | Mozilla — Firefox and Thunderbird |
| NVD Published | 2020-03-02 |
| NVD Last Modified | 2025-11-04 |
| CVSS 3.1 Score | 8.8 |
| CVSS 3.1 Vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
| Severity | HIGH |
| CWE | CWE-843 find similar ↗ |
| CISA KEV Added | 2021-11-03 |
| CISA KEV Deadline | 2022-05-03 |
| Known Ransomware Use | No |
CVSS 3.1 Breakdown
Required Action
Timeline
| Date | Event |
|---|---|
| 2020-01-08 | Mozilla ships emergency fixes in Firefox 72.0.1 and Firefox ESR 68.4.1, describing active exploitation |
| 2021-11-03 | Added to CISA Known Exploited Vulnerabilities catalog |
| 2022-05-03 | CISA BOD 22-01 remediation deadline |
References
| Resource | Type |
|---|---|
| NVD — CVE-2019-17026 | Vulnerability Database |
| CISA KEV Catalog Entry | US Government |