PSXHAXで、zecoxao氏がPS4の3.15で利用するための新たなエントリーポイントの調査をしていることを伝えていました。
3.15でのエントリーポイントとは、つまり3.15のPS4で有効なexploitを用意して自作コードを実行できる環境のことになります。現在PS4は1.76が最も新しいファームウェアでのエントリーポイントとしてLinux起動などが実現していますが、もしこの取り組みがうまくいけば3.15でもLinux起動などが可能になる可能性が出てきます。
現状どんな感じかというと…
https://twitter.com/zecoxao/status/719169142222385152
「誰か3.15でテストしてくれる?」
そのコードがこれ。どこかサーバーにアップロードしてPS4のブラウザでアクセスします。
<iframe></iframe><object onbeforeload=\"crash()\">
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}function crash() {
document.getElementsByTagName(\"iframe\")[0].contentWindow.scrollX;
document.open();
}document.body.offsetLeft;
setTimeout(function() {
document.close();
document.body.innerHTML = \'PASS if not crashed.\';
testRunner.notifyDone();
}, 1);
</script>
これに応じたZer0xFF氏がテストし、「ASS if not crashed.」と表示されたことをzecoxao氏に伝えた後の会話。
「これ、エントリーポイントになるの?」
「そう。他のも試してみる?」
「もちろん。そのために3.15からアップデートしてないんだからさ。」
<input id=\"t1\" type=\"time\">
<script>
var time1 = document.getElementById(\'t1\');
document.addEventListener(\'beforeload\', function(event) {
time1.value = time1.value ? \'\' : \'23:59\';
}, true);if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
setTimeout(function() {
document.body.innerHTML = \'PASS if not crashed.\';
testRunner.notifyDone();
}, 100);
time1.focus();
</script>
<embed src=\"data:text/html,PASS\"></embed>
結果は「PASS if not crashed」だったようです。
現在まだ進行中で最終的結果がどうなるのか分かりませんが、公開されているPS4のWebKitブラウザのソースコードだと3.15と3.50は別物で、3.15でのエントリーポイントとなる可能性がある脆弱性は3.50で対策されてしまっているとのことです。
3.15にexploitが見つかったよという話ではありません。3.15のWebKitでexploit探しが密かに行われていますよというだけです。この記事の趣旨は1.76以降のファームウェアについても当然調査は行われているという事実だけをお伝えするためのもので、期待を煽るつもりはありません。