Effective Power: iPhone’s 2015 Unicode of Death
When we think of bugs, we often tend to think on the application level; everyone has experienced a bug on a website or perhaps an app on their smartphone.
We should, however, expand our view from just the application level. Every piece of software created has its share of bugs, which means every iOS application has its bugs. If we zoom out, we realize the iPhone – specifically its OS – is a piece of software, and as we’ve mentioned before: every piece of software has its bugs.
The Effective Power Bug
In May of 2015, iPhones suddenly began to crash and reboot without any notice to the user – this was caused by a text message received by the affected iPhone. The bug would be triggered whenever someone sent a text message to an iPhone from another iPhone. The message composed partly of Arabic characters along with other characters, when received by an iPhone while in lock screen mode, would cause the device to become unresponsive for touch input. Users also reported that the bug would be triggered when a victim attempted to access the text message from the Notification Panel. To recover from the crash, the device would end up rebooting.
The ease of access of this exploitation helped this particular bug go viral. There was no third-party application or intricate set of instructions needed to go ahead and attempt to crash another user’s phone. All anyone needed was their own apple device, the correct sequence of characters, and a desired target. Since information sharing is so quick and easy in the internet age, anyone who wanted to know the string (either out of curiosity or malicious intent) could easily find it on the web. The string of characters was continuously shared on Twitter, and Reddit, and news articles also contained the string in their stories – so getting access to the message was not a difficult task.
The actual Severity of the bug was relatively low. While the bug would render a device unresponsive and the device might end up rebooting, there were no signs of any data leakage or manipulation, or long-term effects on the actual device. So while the bug may have been a headache and annoyance to victims, the bug itself was not destructive and was simply an annoying bug.
Why it Happened
Apple’s CoreText library is responsible for helping applications display text on screens, and also responsible for how unicode is processed. Unicode is an international encoding standard that assigns a unique numeric value to letters, symbols and digits to help ease the use of different languages. In the case of the Effective Power bug, the cause of the bug was in how CoreText was processing the unicode used for the Arabic characters in the string. CoreText would try to access invalid memory on the device upon receiving the string, causing the Operating System to kill the running application. When the message was sent on a locked device or if accessed through the notification panel, an integral part of the OS would be killed instead of a running application.
Apple was quick to notify users of a work around to this bug, and in short time had a released a patch to remedy it. Apple has been incredibly quick with addressing bugs of this nature, and Effective Power is far from being the last “unicode of death” bug for which apple will have to create patches.
In January 2017, a text message containing a rainbow emoji could disable any iPhone. Only a year later, another bug surfaced nicknamed “ChaiOS text bomb” and was also called the return of Effective Power. In this version of the bug, a link would be sent in a text message and upon clicking on the link from the Messages application, it might crash the Messages app, redirect you to the lock screen or in severe cases, freeze and reboot the device. A month later in February 2018, the “Telugu Text bomb” appeared, which would crash iPhone devices when receiving a specific Unicode from the Telugu language. Fast forward to the current year, in April the “Sindhi/ Italian Flag Bomb” began circulating and is the most current bug of this nature to appear. It has since been addressed by Apple with the release of iOS 13.5 (previously known as iOS 13.4.5).
Thankfully, most of these “Unicode of Death” bugs are not extremely harmful, and serve primarily as a malicious prank.
For more history on Infamous Software Bugs, check out the rest of our series here.