
Memory safe iBoot implementation
On devices with iOS 14, iPadOS 14, or later, Apple modified the C compiler toolchain used to build the iBoot bootloader to improve its security. The modified toolchain implements code designed to prevent memory- and type-safety issues that are typically encountered in C programs. For example, it helps prevent most vulnerabilities in the following classes:
Buffer overflows, by ensuring that all pointers carry bounds information that's verified when accessing memory
Heap exploitation, by separating heap data from its metadata and accurately detecting error conditions such as double free errors
Type confusion, by ensuring that all pointers carry runtime type information that’s verified during pointer cast operations
Type confusion caused by use after free errors, by segregating all dynamic memory allocations by static type
This technology is available on iPhone with the A13 Bionic chip or later, and on iPad with the A14 Bionic chip or later.