CVE-2018-12387

A vulnerability where the JavaScript JIT compiler inlines Array.prototype.push with multiple arguments that results in the stack pointer being off by 8 bytes…

published October 18, 2018

CVSS
—
EPSS
10%
Percentile
95.5
In the wild
Unconfirmed
What it is

⚠️ A tiny off-by-eight error in JavaScript's JIT compiler could lead to a sneaky memory address leak! 📜 Think of it like a librarian misplacing a book's location by eight shelves, allowing anyone to find a hidden treasure of information about the library's layout. 📚 If exploited, this vulnerability could allow attackers to retrieve sensitive memory addresses from the calling function, potentially leading to further exploits within the sandboxed content process. It's a surprisingly sneaky way to gather information that should remain hidden!

Put simply

Think of it like a librarian misplacing a book's location by eight shelves, allowing anyone to find a hidden treasure of information about the library's layout. 📚 The issue arises from the JIT compiler inlining Array.prototype.push with multiple arguments, causing the stack pointer to misalign by eight bytes during a bailout. This misalignment leaks a memory address that could be leveraged for exploitation.

What to do

If exploited, this vulnerability could allow attackers to retrieve sensitive memory addresses from the calling function, potentially leading to further exploits within the sandboxed content process. It's a surprisingly sneaky way to gather information that should remain hidden! To mitigate this vulnerability, update Firefox ESR to version 60.2.2 or later, and Firefox to version 62.0.3 or later. Regularly check for updates to ensure you're protected against such sneaky flaws! You've got this! Keeping your browser up-to-date will help close this door on potential exploits. 🛡️

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.09590 · 95.5th percentile
Published
2018-10-18T13:00Z
EPSS history
Timeline
  • 18 OCT 13:00Z
    A vulnerability where the JavaScript JIT compiler inlines Array.prototype.push with multiple arguments that results in the stack pointer being off by 8 bytes…
    cvelistv5