1975年のプロセッサエミュレーションで再生されるオーディオファイルによる古いUbuntuの脆弱性





脆弱性と論理的な分離エラーは、Nintendo Entertainment Systemの音楽ファイルgstreamerプレーヤーバージョン0.10.xで解決された、とChris Evans サイバーセキュリティブログに語っています。 システムの脆弱性により、64ビットASLRDEPなどの使用と回避への安定したアクセスが可能になります。 これは、プレーヤー内の音楽ファイルのチューリング完全スクリプトのサポートのおかげで可能になりました。 この脆弱性は、下位互換性のサポートにあります。



脆弱性は、まだサポートされている古いLTSバージョン12.04.5のUbuntuの影響を受けます。 将来のバージョンでは新しいglibcが使用されるため、システム上のエクスプロイトは機能しなくなります。



とは



分析の作成者は、エクスプロイトコールのスクリーンショットを提供します。







アクティベーションプロセスは、感染したファイルを初期化せずに実行され、そのファイルに移動するだけです。



gstreamer-0.10



ディストリビューションのサウンドデコーダファイルlibgstnsf.so



にはバグがあります。これは、サウンドに関連するすべてのタスクに対してシステムでデフォルトで使用されます。 Ubuntu 14.04にもこのデコーダがありますが、ほとんどの場合、デフォルトでgstreamer-1.0



ます。



Ubuntuをインストールするプロセスで、システムは、ユーザーがmp3ファイルを使用したいかどうかを偶然に質問します。 Badパッケージのプラグインなど、多くの追加パッケージが肯定的な応答後にインストールされます-常に品質を促進するとは限らないもの:コードレビュー、メンテナー、ドキュメントなどがありません。



攻撃はどのように見えますか?



このエクスプロイトは、NSF音楽ファイルを再生するためのプラグインの脆弱性を悪用します。 これらのオーディオトラックは、パーソナルコンピューターで再生される通常のトラックとは異なります。



NSFフォーマットファイルは、NESコンソールプロセッサエミュレータとリアルタイムオーディオハードウェアによって再生されます。 さらに、NSFファイル内に一連の指示がある場合があります。 それを再生するために、脆弱なオーディオプレーヤーは40年前にプロセッサをエミュレートしました。 脆弱なバージョンのUbuntuには2人のプレイヤーがいますが、2番目のlibgme



にはエラーはありません。



gstreamer



プラグインは、6502プロセッサー用の仮想ハードウェア環境を作成し、エミュレーターでコードの一部を実行して音楽を再生します。 次に、仮想サウンドレジスタから結果の値を読み取り、それらに基づいてサウンドサンプルをレンダリングします。



NES Sound Format-再生のために音楽をNESゲームに圧縮する音楽ファイル標準。 脆弱性を起動するために使用されるスクリプト言語が含まれています。 感染したUbuntuシステムでNSFファイルを開くと、音楽プレーヤーとgstreamerマルチメディアフレームワークを介してlibgstnsf.so



ファイルへのパスがlibgstnsf.so



ます。



この例に興味のある方は、Castlevania 2 cv2.nsfからオーディオファイルをダウンロードできます。 Linuxがこの形式をサポートしている場合、サウンドはtotem cv2.nsf



などのコマンドでtotem cv2.nsf



されます。 17,264バイトのこの小さなファイルには小さなプログラムが含まれています。このサンプルは適合しません。 システムがこの形式を認識しない場合、不足しているプラ​​グインのダウンロードを提案します。



プラグインは、出力で音楽を受信するためのNESのように、実際の6502をエミュレートするプロセスで動作し、どこかに脆弱性があります。 したがって、ポイントは、理解できない音楽ファイル形式を再生するための多層下位互換性だけでなく、1970年代からの「8ビット」のプログラムのエミュレーションでもあります。



この脆弱性の使用方法:





追加の説明



このエクスプロイトは、次のプログラムで実行した場合も同様に機能します。





詳細については、 Chrisの投稿の関連セクションで説明されています。エクスプロイト自体の概要、考えられる脆弱性、エクスプロイトの詳細です。



彼はまた、正式に見つかったエラーは0日間の脆弱性に関連しているが、2012年4月にリリースされた長期のサポートバージョンである古いUbuntu 12.04にのみ影響を与えると書いています。 彼女 2017年4月26日までサポートされます 。 問題は、メジャーではなくマイナーです。 彼女が1975年のプロセッサーを介して来たという事実は楽しいままです。



PSこの脆弱性は、Ubuntuチームのメンバーによって既に修正されています。



All Articles