Charlie Miller, the serial hacker who has exposed more than a dozen critical vulnerabilities in Apple's Mac and mobile platforms, was kicked out of the company's iOS developer program after publishing an application that demonstrated a serious new bug in iPhones and iPads.
Miller's InstaStock app, which was accepted into the iTunes App Store in September, bills itself as a program that tracks stock prices in real time. On Monday, Miller announced that the app contained a secret hack that bypassed protections built into iOS devices that prevent code from running on them unless it has been signed by Apple's official cryptographic seal.
As a result, Miller was able to endow InstaStock with powerful capabilities that were never approved during the app store application process, including the ability to remotely download pictures and contacts stored on an iPhone or iPad that has the app installed.
A few hours after Miller disclosed the hidden payload, he received an email informing him that Apple was terminating him from the iOS Developer Program for violation of a clause in the program's license in which he agreed he wouldn’t “hide, misrepresent or obscure any features, content, services or functionality” of applications he submitted.
“They had every legal reason to do it, but i still think it's rude,” Miller told The Reg. "It's going to hinder my ability to help them secure their products."
Miller's code-signing bypass exploits a change introduced in iOS 4.3 that for the first time created a small region in iPhones and iPads where unsigned code downloaded from the internet could be executed. The exception was designed to improve the performance of Safari by allowing it to do just-in-time compiling. To prevent the exception from being abused, Apple tightly restricted it to Safari, and even then only in certain cases.
Miller discovered a flaw in the way iOS performs those checks. As a result, he can easily include code in any App Store submission that tricks the mobile OS into dropping the code-signing requirement, allowing his app to perform a variety of undisclosed attacks, including giving him remote shell access as demonstrated in the following video.
“It's a payload that shouldn't be allowed to run on the iPhone,” he said. “It shows that malware can run on the iPhone with this flaw.”
Miller was the first researcher to disclose a remotely exploitable vulnerability in the iPhone. It allowed attackers to steal text messages, contact information, call history, and voice mail. In the past four years, he estimates, he's exposed more than a dozen similar vulnerabilities in the iOS and Mac OS X platforms, and has never received a dime in compensation from the company. This is the second code-signing bypass he's found in iOS.
Miller said he's concerned that his excommunication will hinder his ability to find security bugs in Apple software until it has become publicly available. A case in point is iOS version 5.01, which is currently in beta testing.
“Normally, I can download that and check to see if they fixed [a flaw I discovered], but now I can't do that,” he said. “Now I have to wait until it comes out and if they screwed it up no one will know until it's too late.”
The code-signing bypass bug is similar to a weakness in Google's rival Android platform that allows attackers to surreptitiously install malware on users' handsets. Almost a year after that weakness came to light, similar exploits were still possible in Android.
So as unfortunate as the iOS vulnerability is, it's worth remembering that what Miller is able to achieve with InstaStock is essentially what has been possible on Android handsets for more than a year. ®