macOS 10.13.3/iOS 11.2.5でアプリが特定のテルグ語でクラッシュするバグはゼロ幅非接合子の処理の不具合によるもので、iOS 10にも影響。

macOS/iOSをクラッシュさせるテルグ語 iOS11
記事内に広告が含まれています。
スポンサーリンク

 macOS 10.13.3/iOS 11.2でアプリが特定のテルグ語でクラッシュするバグはゼロ幅非接合子処理の不具合によるもので、iOS 10デバイスにも影響するそうです。詳細は以下から。

Unicdeのロゴ

 2018年02月14日頃(実際には12日)から、メッセージを受信するだけで最新のmacOS 10.13.3/iOS 11.2.5/watchOS 4.2/tvOS 11.2.5デバイスのアプリをクラッシュさせる事が出来る特定のテルグ語(Telugu)が発見され、話題になっていますが、このバグはAppleのCoreTextがUnicodeのゼロ幅非接合子を正しく処理できていないために発生するそうです。

The ZWNJ
The ZWNJ is curious. The crash doesn’t happen without it, but as I mentioned before a ZWNJ before a vowel doesn’t really do anything for most Indic scripts.

Conclusion
I don’t really have one guess as to what’s going on here – I’d love to see what people think – but my current guess is that the “affinity” of the virama to the left instead of the right confuses the algorithm that handles ZWNJs after viramas into thinking the ZWNJ applies to the virama (it doesn’t, there’s a consonant in between), and this leads to some numbers not matching up and causing a buffer overflow or something.

Picking Apart the Crashing iOS String – In Pursuit of Laziness

 MozillaのエンジニアManish Goregaokarさんによると、原因となる文字(正しくは文字列)は以下の4つのテルグ語で構成されており、この並びの4番目にUnicodeのゼロ幅非接合子(ZWNJ:Zero Width Non-Joiner)が加わると”virama”の処理でバッファーオーバーフローか何かが発生し、アプリがクラッシュするようで、

クリックで拡大

ZWNJは以前、絵文字の合成でも話題になったゼロ幅接合子(ZWJ:Zero Width Joiner)とは逆に、本来ならば合字として連結される2つの文字をそれぞれ末尾形および頭字形で表示する制御文字となっているそうです。

iOS 10にも影響

 このバグは現在最新のApple OS(macOS 10.13.3やiOS 11.2.5など)に影響すると報告されていますが、iOS 10デバイスにも影響があるようで、

EverythingAppleProのFilipさんによると、このバグはiOS 9(iOS 9.0.2)デバイスでは再現できなかったそうですが、iOS 10(iOS 10.2.1)では発生しiOS 11ユーザーに示された解決方法がiOS 10では利用できないため、iMessageでこの文字列を受信してしまった場合はiOS 11へアップグレードするか、他のiOS 11端末を同じApple IDでアクティベートしてスレッドを消すしかないようです。

ドメイン

 また、この問題が発覚した時点でこの文字列の”.com”ドメインは取得されておらず、2018年02月14日にセキュリティ研究者のValentine Reidさんによって購入されたため、[macOS/iOSをクラッシュさせる文字列].comを利用してメッセージを送りつけMacやiPhoneなどをクラッシュさせる攻撃は防がれたようですが、他のドメインはまだ取得されていないので、Appleのアップデートを待つしかないようです。

This domain was purchased for testing, and not for malicious use, if the url that got you here crashed something, sorry, I hope Apple fixes the bug soon

Apple Unicode Punter – Vgrsec

コメント

  1. 匿名 より:

    iOS 10ということは、Sierraでも注意しないといけませんね。

タイトルとURLをコピーしました