ツイッターで、TheFloW氏がPS4のJailbreakドングルが作れたかもしれないネタを公表していました。
今回の話は「ネタ」でしかありません。実際PS4のJailbreakドングルは作れません。単なる話題として読んで下さい。
TheFloW氏は今年の3月にPS4 6.20で有効なカーネルexploitを発見したことを報告しています。その後特に動きはありませんが、6.20のカーネルexploitもツイッターでの発言で公表してます。
あれから数ヶ月空いての最初の発言が、これです。
This week I reported a vulnerability to FreeBSD/OpenBSD where an attacker with physical access to a machine could cause an out-of-bounds read or write on kernel heap by plugging in a malicious USB HID device.https://t.co/Ggt5omo9f2https://t.co/wqInYxUwB9
— Andy Nguyen (@theflow0) June 5, 2020
今週、FreeBSD/OpenBSDの脆弱性を報告しました。攻撃者が悪意のあるUSB HIDデバイスを挿入するとマシンへの物理アクセスで、本来はできないはずのカーネルヒープへの読み書きが可能になってしまう可能性があるというものです。
https://github.com/freebsd/freebsd/commit/83f4a222f097d1d4eea16e165fa7ac8b3efe63a4
これを読んだとき、さすがGoogle社のセキュリティエンジニアだなぁと、へーと思っただけですが、続きのツイートを見て「へー」が「おっ!」となりました。
Unfortunately Sony implemented their own HID descriptor parser on the PS4 which is not vulnerable. Otherwise I could have realized a dongle jailbreak :(
— Andy Nguyen (@theflow0) June 5, 2020
残念ながらソニーがPS4に実装した独自のHID記述子パーサーには脆弱性がありませんでした。もし脆弱性があったらJailbreakドングルができたのに。
な!Jailbreakドングル!!
HIDというのはHuman Interface Deviceのことで、USBの場合HIDクラスと言って情報を入力するために使うキーボードやマウスなどが主に該当します。キーボードやマウスといっても実際にはデータが転送されていますので、悪意のあるコードを転送させるUSBデバイスを差すとカーネルの領域にデータの書き込みや読み出しができてしまうようになり、いわゆるカーネルモードでの動作が可能になってしまいます。うまくやればJailbreakも確かにで不可能ではないかもしれません。
TheFloW氏も言っていますが、PS4ではこの脆弱性は存在しないため残念ながら利用できません。ただPS4に限らずUSB端子が付いたFreeBSD(UNIX互換のオープンソースOS)ならJailbreakドングルというものが実現できる可能性はゼロではありません。
SwitchbrewにはNintendo Switchのシステムソフトウェアライセンスには「Horizon(SwitchのOS)のコードはFreeBSDのカーネルを利用している」と書かれていますし(ただし、SwitchでFreeBSDを起動させるのは不可能らしいです)、なにか面白いことが起こると楽しそうです。そんな夢物語よりもPS4の6.20カーネルexploitの方が遙かに現実的です。