cbcvebase.
CVE-2019-8623
published 2019-12-18

CVE-2019-8623: Multiple memory corruption issues were addressed with improved memory handling. This issue is fixed in iOS 12.3, macOS Mojave 10.14.5, tvOS 12.3, watchOS…

PriorityP265high8.8CVSS 3.1
AVNACLPRNUIRSUCHIHAH
EXPLOIT
EPSS
8.29%
94.3th percentile
Multiple memory corruption issues were addressed with improved memory handling. This issue is fixed in iOS 12.3, macOS Mojave 10.14.5, tvOS 12.3, watchOS 5.2.1, Safari 12.1.1, iTunes for Windows 12.9.5, iCloud for Windows 7.12. Processing maliciously crafted web content may lead to arbitrary code execution.

Affected

24 ranges
VendorProductVersion rangeFixed in
appleicloud< 7.127.12
appleicloud>= 10.0 < 10.410.4
appleicloud_for_windows
appleicloud_for_windows
appleicloud_for_windows>= unspecified < iCloud for Windows 7.12iCloud for Windows 7.12
appleios
appleios>= unspecified < iOS 12.3iOS 12.3
appleiphone_os< 12.312.3
appleitunes< 12.9.512.9.5
appleitunes_for_windows
appleitunes_for_windows>= unspecified < iTunes for Windows 12.9.5iTunes for Windows 12.9.5
applemac_os_x< 10.14.510.14.5
applemacos>= unspecified < macOS Mojave 10.14.5macOS Mojave 10.14.5
applemacos_mojave_10.14.5_security_update_2019-003_high_sierra_security_update_2019-0
applesafari< 12.1.112.1.1
applesafari
applesafari>= unspecified < Safari 12.1.1Safari 12.1.1
appletvos< 12.312.3
appletvos
appletvos>= unspecified < tvOS 12.3tvOS 12.3
applewatchos< 5.2.15.2.1
applewatchos
applewatchos>= unspecified < watchOS 5.2.1watchOS 5.2.1
debianwebkit2gtk< webkit2gtk 2.24.1-1 (bookworm)webkit2gtk 2.24.1-1 (bookworm)

Detection & IOCsextracted from sources · hover to see the quote

command--useConcurrentJIT=false
path/System/Library/Frameworks/JavaScriptCore.framework/Resources/jsc
  • Crash in JavaScriptCore JIT-compiled code with EXC_BAD_ACCESS (EXC_I386_GPFLT) where RAX contains a value matching the pattern 0x0001XXXXXXXXXXXX due to NaN boxing — indicative of uninitialized stack slot read triggered by LICM miscompilation.
  • RAX value of 0x0001414141414141 in a JavaScriptCore crash context indicates a sprayed/controlled value was loaded from an uninitialized stack slot — a sign of CVE-2019-8623 exploitation attempt.
  • Exploit PoC uses a stack spray pattern combined with a miscompiled varargs/spread call inside a loop to corrupt memory; monitor for JavaScriptCore DFG JIT crashes involving GetStack/LoadVarargs IR operations.
  • The vulnerability is triggered via maliciously crafted web content processed by WebKit/JavaScriptCore; monitor WebKit-based browsers and apps (Safari, iTunes, iCloud) for unexpected JIT crashes or EXC_BAD_ACCESS signals originating from JavaScriptCore.
  • ·The PoC crash is more reliable with concurrent JIT disabled; with default settings (--useConcurrentJIT=true) the crash is less consistent, meaning detection based solely on crash telemetry may miss exploitation attempts under default JIT configuration.
  • ·The root cause is a logical flaw in DFGLICMPhase.cpp where LICM ignores memory writes in blocks CFA marks as dead code, then hoists memory reads from those same blocks into live code — meaning the corruption is compiler-driven and may manifest differently across JIT compilation thresholds.
  • ·The uninitialized stack slot read may result in varied memory corruption outcomes depending on stack contents at runtime; the PoC uses 0x414141414141 as a canary value but real exploitation would use a valid pointer value instead.

CVSS provenance

nvdv3.18.8HIGHCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
nvdv2.06.8MEDIUMAV:N/AC:M/Au:N/C:P/I:P/A:P
osv8.8HIGH
vendor_debian8.8HIGH
vendor_redhat8.8HIGH
CVEs like this are exactly what “Exploited This Week” covers.

Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.