cbcvebase.
CVE-2019-6215
published 2019-03-05

CVE-2019-6215: A type confusion issue was addressed with improved memory handling. This issue is fixed in iOS 12.1.3, tvOS 12.1.2, Safari 12.0.3, iTunes 12.9.3 for Windows…

PriorityP266high8.8CVSS 3.0
AVNACLPRNUIRSUCHIHAH
EXPLOIT
EPSS
9.75%
95.5th percentile
A type confusion issue was addressed with improved memory handling. This issue is fixed in iOS 12.1.3, tvOS 12.1.2, Safari 12.0.3, iTunes 12.9.3 for Windows, iCloud for Windows 7.10. Processing maliciously crafted web content may lead to arbitrary code execution.

Affected

19 ranges
VendorProductVersion rangeFixed in
appleicloud< 7.107.10
appleicloud_for_windows——
appleicloud_for_windows>= unspecified < iCloud for Windows 7.10iCloud for Windows 7.10
appleios——
appleios>= unspecified < iOS 12.1.3iOS 12.1.3
appleiphone_os< 12.1.312.1.3
appleitunes< 12.9.312.9.3
appleitunes_12.9.3_for_windows——
appleitunes_for_windows>= unspecified < iTunes 12.9.3 for WindowsiTunes 12.9.3 for Windows
applesafari< 12.0.312.0.3
applesafari——
applesafari>= unspecified < Safari 12.0.3Safari 12.0.3
appletvos< 12.1.212.1.2
appletvos——
appletvos>= unspecified < tvOS 12.1.2tvOS 12.1.2
applewatchos< 5.1.35.1.3
canonicalubuntu_linux——
canonicalubuntu_linux——
debianwebkit2gtk< webkit2gtk 2.22.6-1 (bookworm)webkit2gtk 2.22.6-1 (bookworm)

Detection & IOCsextracted from sources · hover to see the quote

commandfunction opt(o) { return o.r.input; } Object.assign({}, RegExp); for (let i = 0; i < 200000; i++) { opt({r: RegExp}); } let input = opt({r: RegExp});↗
  • →The exploit triggers JIT compilation via a hot loop (~200,000 iterations) calling a property accessor on RegExp to pull a CustomGetterSetter object into JavaScript scope — monitor for high-iteration JIT-triggering loops accessing RegExp.input in WebKit/JavaScriptCore contexts. ↗
  • →The exploit abuses `Object.assign({}, RegExp)` to reify static properties on the RegExp constructor, which is the prerequisite step before the type confusion — flag unusual Object.assign calls targeting built-in constructors like RegExp. ↗
  • →The type confusion arises from a mismatch between property value type (CustomGetterSetter) and its attributes as seen by the JIT vs. the interpreter — the JIT compiler sees attributes while the normal interpreter sees the value type, enabling the CustomGetterSetter object to be leaked to JavaScript. ↗
  • →The PoC demonstrates an OOB read via a CustomGetterSetter object linked to regExpConstructorInput — look for anomalous reads/accesses on RegExp.input after JIT warm-up in WebKit process memory. ↗
  • ·The vulnerability exists in WebKit's JSC reifyStaticProperty function, which fails to set the PropertyAttribute::CustomAccessor flag for CustomGetterSetter — exploitation requires processing maliciously crafted web content, so attack surface is browser/WebView-based. ↗
  • ·Fixed versions are iOS 12.1.3, tvOS 12.1.2, Safari 12.0.3, iTunes 12.9.3 for Windows, iCloud for Windows 7.10, and WebKitGTK+ 2.22.6-1 — detections should focus on unpatched instances of these products. ↗

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.