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

CVE-2018-4382: Multiple memory corruption issues were addressed with improved memory handling. This issue affected versions prior to iOS 12.1, tvOS 12.1, watchOS 5.1, Safari…

PriorityP258high8.8CVSS 3.0
AVNACLPRNUIRSUCHIHAH
EXPLOIT
EPSS
5.83%
92.3th percentile
Multiple memory corruption issues were addressed with improved memory handling. This issue affected versions prior to iOS 12.1, tvOS 12.1, watchOS 5.1, Safari 12.0.1, iTunes 12.9.1, iCloud for Windows 7.8.

Affected

13 ranges
VendorProductVersion rangeFixed in
appleicloud< 7.87.8
appleicloud_for_windows
appleios
appleiphone_os< 12.112.1
appleitunes< 12.9.112.9.1
appleitunes_12.9.1_for_windows
applesafari< 12.0.112.0.1
applesafari
appletvos< 12.112.1
appletvos
applewatchos< 5.15.1
applewatchos
debianwebkit2gtk< webkit2gtk 2.22.1-1 (bookworm)webkit2gtk 2.22.1-1 (bookworm)

Detection & IOCsextracted from sources · hover to see the quote

commandArray.prototype.__defineGetter__('a', Array.prototype.push);
  • Trigger pattern: a getter on Array.prototype is defined using __defineGetter__ pointing to Array.prototype.push, then a JIT-compiled function accesses the getter via a computed property (e.g., arr['a' + '']) on an Array instance iterated >1000 times to trigger JIT compilation — look for this pattern in JavaScript engine telemetry or script content inspection.
  • Root cause is in WebKit's ByteCodeParser::handleIntrinsicCall — the ArrayPushIntrinsic handler (and similarly ArraySliceIntrinsic, ArrayIndexOfIntrinsic, ArrayPopIntrinsic) incorrectly assumes the current instruction is always op_call, but can be reached via op_get_by_id or op_get_by_val (getter path), causing type confusion and OOB read. Detection should flag JIT paths where array intrinsics are invoked through getter dispatch.
  • Exploitation vector is 'processing maliciously crafted web content' leading to arbitrary code execution via WebKit — monitor for suspicious web content delivery targeting WebKit-based browsers/apps on unpatched iOS <12.1, tvOS <12.1, watchOS <5.1, Safari <12.0.1, iTunes <12.9.1, iCloud for Windows <7.8.
  • ·The vulnerability is a JIT compiler type confusion — it only triggers after sufficient JIT compilation iterations (loop threshold ~1000). Detection based solely on static script content may miss obfuscated or split variants that achieve the same JIT path through different surface syntax.
  • ·The same vulnerable code pattern exists in four intrinsic handlers (ArrayPushIntrinsic, ArraySliceIntrinsic, ArrayIndexOfIntrinsic, ArrayPopIntrinsic), meaning detection rules should not be limited to Array.prototype.push getter abuse alone.

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.