cbcvebase.
CVE-2018-4192
published 2018-06-08

CVE-2018-4192: An issue was discovered in certain Apple products. iOS before 11.4 is affected. Safari before 11.1.1 is affected. iCloud before 7.5 on Windows is affected…

PriorityP263high7.5CVSS 3.0
AVNACHPRNUIRSUCHIHAH
EXPLOIT
EPSS
12.47%
95.8th percentile
An issue was discovered in certain Apple products. iOS before 11.4 is affected. Safari before 11.1.1 is affected. iCloud before 7.5 on Windows is affected. iTunes before 12.7.5 on Windows is affected. tvOS before 11.4 is affected. watchOS before 4.3.1 is affected. The issue involves the "WebKit" component. It allows remote attackers to execute arbitrary code via a crafted web site that leverages a race condition.

Affected

13 ranges
VendorProductVersion rangeFixed in
appleicloud< 7.57.5
appleicloud_for_windows
appleios
appleiphone_os< 11.411.4
appleitunes< 12.7.512.7.5
appleitunes_12.7.5_for_windows
applesafari< 11.1.111.1.1
applesafari
appletvos< 11.411.4
appletvos
applewatchos< 4.3.14.3.1
applewatchos
debianwebkit2gtk< webkit2gtk 2.20.1-1 (bookworm)webkit2gtk 2.20.1-1 (bookworm)

Detection & IOCsextracted from sources · hover to see the quote

otherfloatarr_magic = 0x3131313131313131 (as double)
otherjsval_magic = 0x3232323232323232 (as double)
otherJSCell header: 0x0118270000000200
otherFake typed array length/flags: 0x0001000000000010
otherCorrupted butterfly length marker: 0x41414141
otherStable OOB length marker: 0x42424242
bytes
0xcc, 0xcc, 0xcc, 0xcc
  • Exploit triggers a race condition between GC and Array.prototype.reverse() in WebKit/JavaScriptCore to achieve a use-after-free on a butterfly (array storage), resulting in OOB read/write and eventual JIT page overwrite with INT3 (0xCC) shellcode.
  • Exploit allocates large strings (0x10000 * N bytes) to trigger GC during Array.reverse() racing — monitor for rapid large-string allocation combined with repeated Array.reverse() calls in JS engine.
  • Exploit overwrites JIT-compiled function code with INT3 bytes (0xCC) at offset +32 from the JIT page base and then calls the function — a crash/signal at a JIT page with 0xCC bytes is a strong indicator of exploitation.
  • Exploit uses a fake Float64Array object constructed inline in a JS object literal with a crafted JSCell header (structure ID ~0x200, m_type=0x27) — detection of fake typed array construction via addrof/fakeobj primitives is indicative of this exploit class.
  • The exploit requires loading external helper scripts 'util.js' and 'int64.js' — presence of these files alongside exploit JS, or network requests for them from a web context, may indicate exploit staging.
  • ·The exploit is a proof-of-concept that ends with INT3 (breakpoint) shellcode rather than a full payload — in-the-wild variants would replace the 0xCC bytes with actual shellcode at the same JIT page offset.

CVSS provenance

nvdv3.07.5HIGHCVSS:3.0/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
nvdv2.05.1MEDIUMAV:N/AC:H/Au:N/C:P/I:P/A:P
osv7.5HIGH
vendor_debian7.5LOW
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.