In-the-wild iOS Exploit Chain 1

Artikeln beskriver en komplex iOS-exploiteringskedja som börjar med en heap overflow som korrumperar en recv_msg_elem-array, vilket leder till en uio-pekare som pekar på en frisläppt ioaccelresource. Angripare återallokerar det frisläppta uio-minnet med ett osdata-objekt, vilket skapar en "dangling pointer"-situation som de kan manipulera. Genom att använda iOSurfaceRootUserClient-objekt kan de lokalisera osdata-bufferten, bestämma KASLR-sliden och läsa kritiska kärnpekare som pekar på deras task struct och userclient-adressen. De modifierar en kopierad iOSurfaceRootUserClient för att peka mot kernel_task och använder get_limits-metoden för att läcka adressen till kernel_task-strukturen. Slutligen manipulerar de ytterligare fält i iOSurfaceRootUserClient och utnyttjar get_surface_use_count för att trigga en serie gadgets som ger godtycklig exekvering i kärnan och tillgång till kernel task port.