cbcvebase.
CVE-2018-4441
published 2019-04-03

CVE-2018-4441: A memory corruption issue was addressed with improved memory handling. This issue affected versions prior to iOS 12.1.1, tvOS 12.1.1, watchOS 5.1.2, Safari…

PriorityP264high8.8CVSS 3.0
AVNACLPRNUIRSUCHIHAH
EXPLOIT
EPSS
12.81%
95.9th percentile
A memory corruption issue was addressed with improved memory handling. This issue affected versions prior to iOS 12.1.1, tvOS 12.1.1, watchOS 5.1.2, Safari 12.0.2, iTunes 12.9.2 for Windows, iCloud for Windows 7.9.

Affected

13 ranges
VendorProductVersion rangeFixed in
appleicloud< 7.97.9
appleicloud_for_windows
appleios
appleiphone_os< 12.1.112.1.1
appleitunes< 12.9.212.9.2
appleitunes_12.9.2_for_windows
applesafari< 12.0.212.0.2
applesafari
appletvos< 12.1.112.1.1
appletvos
applewatchos< 5.1.25.1.2
applewatchos
debianwebkit2gtk< webkit2gtk 2.22.3-1 (bookworm)webkit2gtk 2.22.3-1 (bookworm)

Detection & IOCsextracted from sources · hover to see the quote

commandarr.length = 0x100000; arr.splice(0, 0x11); arr.length = 0xfffffff0; arr.splice(0xfffffff0, 0, 1);
urlhttps://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/46522.zip
filenamerop.js
filenamesyscalls.js
filenamewkexploit.js
  • Detect JavaScript triggering the CVE-2018-4441 OOB via JSArray::shiftCountWithArrayStorage: look for array splice operations that set array length to 0xfffffff0 followed by a splice at offset 0xfffffff0, which manipulates m_numValuesInVector to an attacker-controlled value (0xfffffff0) enabling OOB read/write.
  • The exploit uses a ROP chain for code execution (userland only on PS4); presence of files named rop.js, syscalls.js, and wkexploit.js served together from the same web root is a strong indicator of this exploit kit.
  • The vulnerability is in WebKit's JSC (JavaScriptCore); processing maliciously crafted web content triggers the memory corruption. Flag WebKit/JSC crashes or unexpected memory access violations originating from array splice operations on large sparse arrays.
  • ·The exploit as published targets PS4 firmware 6.20 specifically; gadget offsets must be ported for lower firmware versions, and the p.launchchain() code execution method may also need to be changed.
  • ·The exploit only achieves userland code execution on PS4; it is not a kernel exploit or jailbreak, so post-exploitation capability is limited to userland syscalls.
  • ·Exploit stability degrades when many objects are added into the exploit; the published syscalls.js intentionally contains only a small number of system calls to preserve stability.
  • ·The OOB condition requires that holesMustForwardToPrototype returns false (i.e., no indexed accessors or Proxy objects in the prototype chain); arrays with such prototype chain properties will not be exploitable via this path.

CVSS provenance

nvdv3.08.8HIGHCVSS:3.0/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.8LOW
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.