Yesterday we told you that hacker Pod2G mentioned he was currently searching for vulnerabilities to exploit in the iOS 5.1 firmware. As iOS 5.1 patches previous exploits used to Jailbreak both A4 and A5 iOS devices untethered on iOS 5.0.1/iOS 5.0, it means it is back to the drawing board.

iOS 5.1 Untethered Jailbreak

Today Pod2G has actually written a blog post stating how the Jailbreaking Community can help get involved in developing the iOS 5.1 Untethered Jailbreak. In this blog post Pod2G goes over what a hacker needs to Jailbreak an iOS device and what kind of crash reports are useful to a Jailbreak developer. You can take a read through the quoted text below for more information.

To jailbreak a device, hackers need a set of exploitable vulnerabilities:

  • a code injection vector : a vulnerability in the core components of iOS that leads to custom, unsigned code execution.
  • a privilege escalation vulnerability : it’s usually not enough to have unsigned code execution. Nearly all iOS applications and services are sandboxed, so one often need to escape from the jail to trigger the kernel exploit.
  • a kernel vulnerability : the kernel is the real target of the jailbreak payload. The jailbreak has to patch it to remove the signed code enforcement. Only the kernel can patch the kernel, that’s why a code execution vulnerability in the context of the kernel is needed.
  • an untethering vulnerability : when the device boots, it is unpatched, thus cannot run unsigned code. Thus, to start the jailbreak payload at boot time, a code execution vector either in the services bootstrap or in the loading of binaries is mandatory.

You can help if you can crash either a core application (Safari, Mail, etc…) or the kernel in a repeatable way. A kernel crash is easy to recognize as it reboots the device.

  • Always test on the latest iOS version before reporting a crash (at the time of writing, iOS 5.1)
  • Be sure to not report crashes to Apple : on your iOS device, go to Settings / General / About /Diagnostics & Usage, and verify that “Don’t Send” is checked.
  • Not all crashes are interesting : aborts, timeouts or out of memory kind of crashes are useless. Verify the crash dump in Settings / General / About /Diagnostics & Usage / Diagnostic & Usage Data that the crash report you created is of Exception Type SIGILL, SIGBUS or SIGSEGV.
  • The crash should be repeatable, which means you should know what exact steps produced it and how to produce it on another device.

If you think you have a crash report that is worth Pod2G analyzing (make sure it meets the criteria specified above) you can send an email to iOS.pod2g ‘at’ gmail.com. Let us know if you have any further questions in the comments section below…