Security researchers working with Google’s Project Zero have discovered a series of five vulnerabilities in Apple’s iOS platform, some of which can be exploited without user interaction.
Four of the vulnerabilities were addressed with the release of iOS 12.4 on July 22, but the patch included in that platform release does not resolve the fifth security bug, one of the researchers who discovered the issue reveals.
Tracked as CVE-2019-8646, the first of these vulnerabilities “allows an attacker to read files off a remote device with no user interaction, as user mobile with no sandbox,” Google Project Zero security researcher Natalie Silvanovich explains.
The issue, the researcher notes, is that the class _NSDataFileBackedFuture can be deserialized even if secure encoding is enabled, which could lead to access to local files or to an NSData object being created with a length that is different than the length of its byte array. Apple has addressed the vulnerability with improved input validation.
Tracked as CVE-2019-8660, the second vulnerability is a memory corruption issue that can be exploited without user interaction to cause unexpected application termination or arbitrary code execution. The flaw is triggered when decoding an object of class NSKnownKeysDictionary1.
“This class decodes an object of type NSKnownKeysMappingStrategy1, which decodes a length member which is supposed to represent the length of the keys of the dictionary. However, this member is decoded before the keys are decoded, so if a key is an instance of NSKnownKeysDictionary1, which also uses this instance of NSKnownKeysMappingStrategy1, the mapping strategy will be used before the length is checked,” the researcher reveals.
Silvanovich also notes that the NSKnownKeysDictionary1 instance uses the length to allocate a buffer, and the length is multiplied by 8 without an integer overflow check. The code then attempts to copy the values array into the buffer using the unmultiplied length. Because it is not possible to control the copied values, the vulnerability “would likely be fairly difficult to exploit,” she says.
The next two vulnerabilities, CVE-2019-8647 and CVE-2019-8662, are remote, interaction-less use-after-free flaws that could allow an attacker to cause arbitrary code execution.
Remotely exploited via iMessage and crash Springboard, the first issue is that an NSArray deserialization can invoke subclass that does not retain references. The second bug resides in the NSKeyedUnarchiver and results in a use-after-free, the researcher says.
The fifth vulnerability is tracked as CVE-2019-8641 and could allow a remote attacker to cause unexpected application termination or arbitrary code execution. The researcher did not provide further details on the bug, as the released patch does not address the vulnerability.
A sixth interaction-less vulnerability discovered by the Google researchers and address last week is CVE-2019-8624, and impacts Apple’s watchOS.
“The digital touch iMessage extension can read out of bounds if a malformed Tap message contains a color array that is shorter than the points array and delta array. The method [ETTapMessage initWithArchiveData:] checks that the points array is twice as long as the deltas array, but only checks that the colors array is longer than eight bytes, even though a color is needed for every point-delta pair that is processed,” the researcher notes.
The security vulnerabilities were found by Natalie Silvanovich and Samuel Groß. Silvanovich, which has published details on how to exploit the bugs and they will also present the issues at BlackHat USA.
Related: iPhones, iPads Can Be Hacked via ‘Trustjacking’ Attack