新たに公開されたPlayStation 5向けのジェイルブレイクチェーン「Relapse」は、ファームウェアバージョン7.00~13.60を実行しているPS5およびPS5 Proを標的とします。
このジェイルブレイクは、ブラウザベースのJavaScriptCoreメモリ破壊手法と、カーネルのuse-after-free(UAF)レースコンディションを組み合わせたものです。
プロジェクトのソースコードとドキュメントによると、2段階のチェーンで最終的にカーネルの読み書きアクセスを獲得し、影響を受けるシステムで署名のないELFペイロードを読み込めるようになります。
Sony PS5「Relapse」ジェイルブレイク
Relapseプロジェクトは、開発者のntfargo氏によってGitHubで公開されました。同氏は、カーネルエクスプロイトについてSonic_Iso氏、WebKitエクスプロイトとカーネルバグについてJordy氏のほか、複数の研究者やテスターに謝意を示しています。
リポジトリによれば、対応するファームウェアはバージョン7.00~13.60です。これには、Sonyの最新ファームウェアブランチである14.00へまだ更新していない多くのPS5が含まれます。公開されている報告では、バージョン14.00はプロジェクトの対応範囲外とされています。
RelapseはPS5のブラウザ環境から始まります。第1段階のコードは、WebKitが採用するJavaScriptエンジンであるJavaScriptCore(JSC)を悪用します。
プロジェクトのドキュメントによると、このブラウザ段階ではJSCの情報漏えいと、structured-cloneのオブジェクトプールの不整合を組み合わせています。
この状態によって、TypedArrayが破壊されます。TypedArrayは、定義されたメモリレイアウトを通じてバイナリデータにアクセスするためのJavaScriptオブジェクトです。エクスプロイトの観点では、TypedArrayを破壊することで、攻撃者はJavaScriptサンドボックスの想定する境界を越えてメモリにアクセスしたり、操作したりできる場合があります。
ただし、ブラウザのエクスプロイトだけでは、コンソールを完全にジェイルブレイクするために必要なシステム制御は得られません。そこでRelapseは、アドレスリークと、aio_multi_waitに関わるレースコンディションを組み合わせたカーネル段階のエクスプロイトへ進みます。
この欠陥はuse-after-free(UAF)脆弱性と位置づけられています。UAFは、メモリが解放された後も、コードがそのオブジェクトにアクセスし続けるときに発生します。エクスプロイトは、カーネルの非同期I/O処理に対してレースを仕掛け、解放済みメモリを制御された条件下で再利用することで、カーネルレベルの読み書き機能の獲得を狙います。
CVE脆弱性データベース
カーネルの読み書きアクセスは、権限昇格における重要な分岐点です。これにより、コードが保護されたオペレーティングシステムのメモリを改変したり、調べたりできるようになるためです。
実行に成功すると、RelapseはTCPポート9021で待ち受けるELFローダーを起動します。これにより、対応するペイロードをコンソールへ送り込めるようになります。
プロジェクトにはペイロード関連のファイルのほか、ホームブリュー有効化ツールへのリンクも含まれています。ただしリポジトリは、あくまで教育目的および許可を得たセキュリティ研究のみを想定していると強調しています。
開発者らは、このジェイルブレイクチェーンが完全に安定しているわけではないと注意を促しています。ブラウザが停止した場合、WebKit段階では複数回の試行が必要になることがあります。カーネルUAF段階ではコンソールがハングアップまたはパニックを起こし、再起動が必要になる場合があります。
また、Relapseはテザード方式です。再起動後は効果が維持されないため、PS5を再起動するたびにジェイルブレイクを再実行する必要があります。
被害を避けるため、Sonyは、PS5の所有者に最新のシステムソフトウェアへ更新しておくよう推奨しています。
更新によって、公開済みのエクスプロイト経路を塞げる可能性があります。ただし、公式ファームウェアの更新を適用すると元に戻せない場合があり、古いソフトウェア環境との互換性に影響しかねない点には注意が必要です。
Relapseのリポジトリは、利用するとシステムが不安定になったり、データが失われたり、PlayStation Networkアカウントに制裁が科されたりするおそれがあるとも警告しています。
SOCのアラート調査を1件あたり21分短縮。即時対応に役立つIOCのコンテキストをSOCに: TI LookupをSOCに導入する
翻訳元: https://gbhackers.com/sony-ps5-relapse-jailbreak-exploit-uses/