vendor:
WebKit
by:
Project Zero
8,8
CVSS
HIGH
Uninitialized Memory Copy
125
CWE
Product Name: WebKit
Affected Version From: WebKit prior to version 2.18.6
Affected Version To: WebKit prior to version 2.18.6
Patch Exists: YES
Related CWE: CVE-2018-4233
CPE: a:apple:webkit
Metasploit:
https://www.rapid7.com/db/vulnerabilities/ubuntu-cve-2018-4233/, https://www.rapid7.com/db/vulnerabilities/suse-cve-2018-4233/, https://www.rapid7.com/db/vulnerabilities/gentoo-linux-cve-2018-4233/, https://www.rapid7.com/db/vulnerabilities/oracle-solaris-cve-2018-4233/, https://www.rapid7.com/db/vulnerabilities/apple-itunes-cve-2018-4233/, https://www.rapid7.com/db/vulnerabilities/apple-safari-cve-2018-4233/, https://www.rapid7.com/db/modules/exploit/apple_ios/browser/webkit_createthis/, https://www.rapid7.com/db/modules/exploit/osx/browser/safari_proxy_object_type_confusion/
Other Scripts:
N/A
Tags: N/A
CVSS Metrics: N/A
Nuclei References:
N/A
Nuclei Metadata: N/A
Platforms Tested: All
2018
WebKit: JSC: JSArray::appendMemcpy uninitialized memory copy
The method considers the case where |this|'s type is ArrayWithUndecided, but does not consider whether |otherArray|'s type is ArrayWithUndecided that may have uninitialized data. So, when the memcpy function is called, |otherArray|'s uninitialized memory may be copied to |this| which has a type. The PoC code creates an array with uninitialized memory and then uses the Array.prototype.concat.apply() method to copy the uninitialized memory to a new array.
Mitigation:
Ensure that all memory is initialized before copying it to another array.