iOS・MacOS をクラッシュさせる「chaiOS」は何をしていたのか

少し前に、iOS や MacOS をクラッシュさせる「chaiOS」というバグがニュースになっていた。

「chaiOS」バグは、何十万もの不必要な文字をメタデータに詰め込んだウェブサイトのURLをiMassageでテキストメッセージとして受信すると、iOSやmacOSが応答しなくなったり、クラッシュしたりするというもの。macOSの場合、SafariでこのURLにアクセスしようとした場合も読み込みが終わらなくなる不具合が出るとのこと。

どんな仕組みになっているのか、ソースコードはないかと探してみたら、以下の Reddit で紹介されていた。

そして以下が、問題を起こすソースコードを公開している GitHub リポジトリ。以下の URL は GitHub のファイル一覧を表示するページで、開いてもクラッシュはしないのでご安心を。

ココにある index.html が問題のコード。12MB 超のファイルで、分割して中身をテキストエディタで見てみたところ、title 要素に大量のテキストが入っていた。Unicode 特殊文字や Base64 文字列っぽいモノが大量に埋め込まれていた。

正直サッパリ内容が分からなかったのでこれ以上解析はしなかったが、ただの HTML テキストでもこんなことができるのかと驚愕。