Wibkitの脆弱性Use-After-Free(CVE-2021-30858) PS4の8.52までは確実 9.00まで対応する脆弱性の可能性

wololo.netで、Use-After-Freeと呼ばれるWibkitの脆弱性(CVE-2021-30858)がPS4のブラウザにも存在し、9.00でもまだ対策されていない可能性があることを伝えていました。

PS4_Jailbreak

Use-After-Free(CVE-2021-30858)はAppleの公式サイトに記載があり、2021年9月13日にリリースされたiOS 14.8およびiPadOS 14.8のセキュリティティアップデートで対策されています。

Use-After-Free(CVE-2021-30858)はWebkitの脆弱性で、Webコンテンツを処理により任意のコードを実行できてしまうという内容です。

WebKit

    対象となるデバイス:iPhone 6s 以降、iPad Pro (すべてのモデル)、iPad Air 2 以降、iPad (第 5 世代以降)、iPad mini 4 以降、iPod touch (第 7 世代)

    影響:悪意を持って作成された Web コンテンツを処理すると、任意のコードを実行される可能性がある。Apple では、この脆弱性が悪用された可能性があるという報告について把握しています。

    説明:メモリ管理を強化し、解放済みメモリ使用 (use-after-free) の脆弱性に対処しました。

    CVE-2021-30858:匿名の研究者

iOSおよびiPadOSでは既に対策されていますが同じWebkitのブラウザを搭載しているPS4の場合最新ファームウェアであるPlayStation 4 システムソフトウェア バージョン 9.00でもまだ対策されていないようです。

9.00は9月15日配信ですがビルドされたのは9月1日ですので、対策を実装できたかのどうか微妙なタイミングです。ソニーがオープンソースソフトウェアとして公開しているWebKitに関するドキュメントによると、8.00 – 8.03は同じWebkit、8.50 – 8.53も同じWebkit、9.00以降はWebkitのバージョンが異なります。現時点での9.00 Webkitのソースコード調査の結果、9.00でも脆弱性は残っているはずというのが現時点での見解のようです。

このCVE-2021-30858の脆弱性がブラウザに存在するかどうかを簡単にチェックできるチェッカーをNazkyYT氏が公開してくれました。

ブラウザでhttps://nazky.github.io/PS4CVE202130858/にアクセスして何も表示されなければ未対策となります。ここを参考にウェブサーバーに構築したそうです。AppleのWebkitでしか動作しないのでiOSとPS4だけがチェック対象です。

こうなるとツイッターで続々とチェック結果が集まります。
9.00の場合は”there is not enough free system memory”(メモリ不足)と表示されたそうです。

8.52の場合。

8.50の場合。

8.01の場合。8.03でも同じとの報告が複数上がっています。

8.00の場合

結果を_AlAzif氏がまとめてくれました。

Webkitの脆弱性はソニーが8.00〜9.00で提供しているWebkitのソースコードの中にあります。NazkyYT氏らによるテストの結果、PoCは8.00〜8.52では動作しますが9.00では問題があります。現時点では単なる脆弱性でexploitが実装されているわけではありません。

9.00の場合は動作が異なることから明確に脆弱性があるとは言えない状況のようです。

_AlAzif氏が言及しているとおり、現時点ではただの脆弱性であり任意のコードを実行できるexploitにはなっていません。何らかの制限がないかぎりほぼ間違いなくexploitにすることはできるはずで、PS4 Jailbreakのエントリーポイントとして使えるようになるはずです。あとはカーネルexploitさえ発見されれば、理論上エントリーポイントを経由してカーネルexploitによって9.00 Jailbreakが実現することになります。

CTurtE氏が非公開ながらカーネルexploitを発見したもののHackeroneへ報告し1万ドルの報奨金獲得、ソニーが既に対策を講じてしまったため9.00で対策されたとされています。現在のところ9.00でのカーネルexploitの情報は皆無ですが、8.52 JailbreakであればCTurtE氏のカーネルexploitの情報さえ公開されていれば一気に実現できる可能性が非常に高いと言えるでしょう。CTurtE氏が情報を公開する可能性はほぼないはずですが、8.52でカーネルexploitが存在するという事実は発覚しているのでCTurtE氏以外の誰かが別ルートで同じカーネルexploitを発見して公開する可能性はあるかもしれません。

完全に余談ですが、数日前にも8.00-8.03で有効な(8.50で対策された)Webkitの脆弱性が見つかったとネット上で話題になりました。今回と同じUse-After-Freeと呼ばれるものでCVE-2021-1879が振られていました。
QuickTimePluginReplacementというAppleのQuickTimeのプラグインを読み込むことに関する脆弱性で”GetURL”関数を使っているのですが、それがPS4のWebkitにはそもそも実装されていないので役に立たないことが後に発覚し、一気にシーンが鎮火しました。AppleのおかげでWebkitを使用しているブラウザとユーザーが多数存在するためWebkitの脆弱性は数多く見つかりますが、それをPS4へ応用できるかどうかには別の問題も存在します。これからもこの傾向は続くと思われますが、PS4自体近いうちに消滅することが確実な旧世代機です。PS5にユーザーが簡単に使えるウェブブラウザアプリを実装して貰いたいところですが、発売後1年経ってもブラウザ実装の話は全く聞こえてこないのでPS5には生涯ブラウザアプリは用意されない可能性の方が高そうです。

[追記]
PS5のWebkitでも調査が行われ、M.2 SSD対応アップデートだった21.02-04.00.00で対策されたものの21.01-03.21.00までは有効なようです。