vendor:
iOS
by:
Project Zero
7,8
CVSS
HIGH
Buffer Overflow
119
CWE
Product Name: iOS
Affected Version From: N/A
Affected Version To: N/A
Patch Exists: YES
Related CWE: N/A
CPE: N/A
Metasploit:
N/A
Other Scripts:
N/A
Tags: N/A
CVSS Metrics: N/A
Nuclei References:
N/A
Nuclei Metadata: N/A
Platforms Tested: iOS
2017
Buffer Overflow caused by deserialization parsing error in Foundation library
Sending a crafted NSArchiver object to any process that calls NSArchive unarchive method will result in a buffer overflow, allowing for ROP. The unarchiving of NSCharacterSet will call NSCharacterSetCFCharacterSetCreateWithBitmapRepresentation. If a large bitmap is passed, it can get to the call multiple times, leading to writing a pointer to semi-controlled data one qword below the heap allocation _nonBMPPlanes.
Mitigation:
Ensure that all NSArchiver objects are validated before unarchiving.