PS3のlv2 exploit? スタックオーバーフローの存在

naehrwert氏がPS3のlv2に脆弱性を発見したが問題があって進まないとして情報提供を呼びかけていました。

少し前にnaehrwert氏はKaKaRoTo氏がlv2_kernel解析時にスタックオーバーフロー(プログラム中での関数呼び出しが多すぎる時に発生するバッファオーバーフローの一種)の脆弱性が存在することを発見しました。ただし、実用するには以下の2つの問題があるそうです。

    1) 脆弱性は保護されたsyscall(SELFが0x40というコントロールフラグセットする際にコールする)に存在する。そのためまずそれを利用するのに適したユーザーモードexploitを見つけなくてはならない。exploitがあれば権限を持たせてコードを実行することが可能になる。
    2) ペイロードデータはまずlv2ヒープ(メモリ領域)にコピーされ、ペイロード実行前に関数が自由に呼び出せるようになる。そう聞くと問題になるようなことは特になさそうだが、lv2ヒープでの実行は空きエリアを0xABADCAFEで埋めてしまい結果としてペイロードを破壊してしまう。

naehrwert氏はここに3.41 lv2_kernelでスタックオーバーフローを起こすためのサンプルコードを公開しています。このスタックオーバーフローの脆弱性は最新ファームウェア含めたPS3の全ファームウェアに存在しているそうです。

通常脆弱性の存在を公表してしまうとその存在を公にすることになるため、次のファームウェアアップデートで対策されてしまう可能性が大です。それでもなお公開したところを見るとnaehrwert氏やKaKaRoTo氏でも対処できないと判断したのだと思われます。

スタックオーバーフローを利用するためには1)のexploitと2)のペイロード破壊の問題をクリアしなければなりません。1)のexploitに関しては「質問しないでね」と言っているのでおそらく既に見つけている可能性が高いです。そこで問題は2)に絞られる訳ですが、現在naehrwert氏は2)の問題をクリアできる方法がないか、と情報提供(というより、誰かできませんか?的告知です)を呼びかけています。問題がクリアできなければスタックオーバーフローのこの脆弱性は捨ててしまっても止む無しと考えているのでしょう。進展するのを期待したいところですがPS3シーンの大御所とも言える2人が躓いている状態をクリアする開発者が出てくるのかどうかは微妙です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする