This article is more than 1 year old

Apple Macs, iThings, smart watches choke on tiny Indian delicacy

Watch out for text bomb that crashes apps and devices over and over and...

Apple last month fixed a flaw in macOS and iOS that allowed a text message to crash its chat software (CVE-2018-4100) – and now it has the opportunity to do so again.

Various macOS, iOS, and watchOS apps that rely on Apples's text-rending code can be crashed when sent a message containing a symbol composed of characters used in the Indian language Telugu.

A post on Monday to Open Radar – a community bug reporting site set up to maintain copies of bugs submitted to Apple's private Radar bug tracking system because Apple prefers secrecy to public discussion of flaws – describes how to take down apps running on devices from the fruit-themed biz.

"Try to insert 'జ్ఞ‌ా' this symbol in any system text renderer like TextField, Label, TextView [and it always crashes]," iOS developer Igor Bulyga explains in his post.

The symbol represents a combination of Telugu letters and signs, specifically the letter "ja," the sign "virama," the letter "nya," a zero-width non-joiner and the vowel sign "aa."

Trying to open a message with this symbol in iMessage or other apps that rely on Apple's UIKit framework for text rendering, like Facebook Messenger, Twitter, and WhatsApp, will cause a crash. Don't what ever you do try to create a filesystem folder using that symbol.

If a message with the offending symbol gets surfaced as a notification on an iPhone lock screen and opened, reports suggest that will take down Springboard, the iOS app managing the home screen.

Restarting may not help because if the software tries to render the offending character again, the crash will repeat. A potential fix would be to delete the message by logging into the appropriate app on another device (without opening the message) before rebooting.

Bulyga created sample Swift code, for the Swift Playgrounds app, to demonstrate the problem.

import UIKit
import PlaygroundSupport

  class MyViewController : UIViewController {
    override func loadView() {
        let view = UIView()
        view.backgroundColor = .white

  let label = UILabel()
        label.frame = CGRect(x: 150, y: 200, width: 200, height: 20)
        label.text = "జ్ఞ‌ా"
        label.textColor = .black

  view.addSubview(label)
        self.view = view
    }
}

// Present the view controller in the Live View window
PlaygroundPage.current.liveView = MyViewController()

According to Bulyga, Apple marked his submission in its Radar bug reporter as a duplicate, indicating that the company is aware of the issue and is presumably planning a fix.

Apple did not respond to a request for comment, but the word is that the latest beta version of the next iOS release does not have this problem. ®

Bootnote

Only this week was ex-Windows boss Steve "one-man wrecking crew" Sinofsky praising Apple for its "breathtaking and unprecedented ... quality."

That aged well.

More about

TIP US OFF

Send us news


Other stories you might like