Hackers exploit Zero-Days because these vulnerabilities are unknown to software developers, making them valuable for launching attacks before developing patches.Â
Zero-day exploits provide an opportunity to:-
- Compromise systems
- Gain unauthorized access
- Cause significant damage
- Steal sensitive information
Cybersecurity researchers at Securelist recently discovered a malicious operation dubbed “Triangulation,” in which threat actors exploit the 0-click iMessage attack using four zero-days to hack iPhones.
Zero-days discovered
Here below, we have mentioned all the four zero-days that were discovered:-
Attack chain
Attackers send a harmful iMessage attachment that exploits a code execution vulnerability (CVE-2023-41990) in Apple’s ADJUST TrueType font.
It employs return/jump-oriented programming and multiple stages in NSExpression/NSPredicate language. It patches JavaScriptCore to run a privilege escalation exploit in obfuscated JavaScript, totaling around 11,000 lines.
The exploit leverages DollarVM to control JavaScriptCore’s memory and execute native API functions.
It was designed for both old and new iPhones, and for the recent models, it bypasses the PAC.
Meanwhile, the CVE-2023-32434 is exploited to gain read/write access via XNU’s syscalls. However, to bypass the Page Protection Layer, it uses the MMIO registers, which CVE-2023-38606 mitigated.
Technical analysis
SoC peripheral devices have MMIO registers mapped via DeviceTree. Operation Triangulation exploit targets unknown MMIOs in Apple A12–A16 Bionic SoCs at:-
- 0x206040000
- 0x206140000
- 0x206150000
Despite extensive searches, no references were found in device tree files, source code, firmware, or kernel images. SoC has MMIO ranges at:-
- 0x206400000–0x20646C000
- 0x206050000–0x206050008
Exploit uses the following unknown addresses mainly within gfx-asc regions, hinting at GPU coprocessor:-
- 0x206040000
- 0x206140008
- 0x206140108
- 0x206150020
- 0x206150040
- 0x206150048
Here, the device tree and pmgr utility was used to find the GFX register in the power manager MMIO range. Through the SERROR Exception, the GPU coprocessor involvement was confirmed.Â
The 0x206040000 register was explored during the exploit stages, and it’s been identified CoreSight MMIO debug registers for the GPU coprocessor.
The ml_dbgwrap_halt_cpu function was discovered in the XNU source code and recognized the purpose of unknown registers, like 0x206150020 for A15/A16 Bionic SoCs.Â
For page table patching, the PPL bypass hardware feature was revealed and exploited for kernel debugging on iPhones.
Moreover, the m1n1 tool used to trace MMIO registers on M1 found no usage by macOS and shared similarity with 37C3 presentation on Blu-ray drive vulnerability.Â
The iOS 16.6 fix was mitigated by adding MMIO ranges to the device tree and the Pmap-io-ranges in the device tree used by XNU to control physical address mapping.
Unusual vulnerability puzzles the researchers, as the origin and purpose of unknown hardware features confuse the experts; however, it’s unclear if Apple or a third party designed it.Â
This flaw exposes the uselessness of the advanced hardware protections against smart attackers. Besides this, hardware security leans on “security through obscurity,” which is a flawed approach.