「Branch Target Reuse(BTR)」と呼ばれるSpectre v2攻撃の新たな亜種が明らかになりました。この攻撃を使うと、Linuxが動作するIntel製コンピューターからrootパスワードのハッシュを、わずか数分で回復できます。
BTR攻撃は、ジャストインタイム(JIT)エンジンが新しいコードのためにメモリを再利用した後も、プロセッサーの分岐予測器に古い情報が残っている点を突きます。
攻撃者は、この残存情報を操作することで、プロセッサーを欺いて誤った命令を一時的に実行させ、機密データを露出させる可能性があります。
この新たな攻撃を考案したのは、VUsec(アムステルダム自由大学のシステム・ネットワークセキュリティグループ)とScuola Superiore Sant’Annaの研究者らです。研究者らは、FirefoxのJavaScriptエンジンであるSpiderMonkey、GraalVM、Linuxカーネルのcbpfを対象に、攻撃の実用性を評価しました。
VUSecのCristiano Guiffrida氏はBleepingComputerに対し、今回の発見は重要だと説明しました。2018年以降、汎用のJITエンジンでは動的コード生成の基盤として自己書き換えコード(SMC)が使われているため、この種の攻撃は実用的ではないと考えられてきたからです。
BTRはその見方を覆しました。SMCを利用した一時的実行攻撃が実環境でも実用的であり、rootパスワードのハッシュを窃取できることを示したのです。
研究者らは影響を受けるベンダーに通知しました。この問題にはCVE-2026-64507とCVE-2026-64508が割り当てられています。修正は、すでにLinuxカーネルにマージされました。
BTRがrootパスワードハッシュを漏えい
Spectre-v2は、投機的実行を利用したサイドチャネル攻撃です。CPUを欺いて、誤って予測されたジャンプ先の命令を一時的に実行させ、CPUキャッシュを通じてデータを露出させます。
研究者らが技術論文で説明するところでは、BTRの亜種は、ジャンプ先のコードが置き換えられた後に古い予測を再利用することで、この攻撃を成立させます。
この新たな攻撃が突くのは、JITコンパイルされたコードとCPUの分岐予測器との間に生じるずれです。具体的には、JITエンジンがコードを解放して同じアドレスに新しいコードを配置しても、CPUは古いコードにあった間接分岐のターゲットを記憶したままの場合があります。
その後の分岐は、CPUが次に実行する命令を決める地点です。通常の実行であれば別の場所へ進むはずですが、CPUは古いターゲットに従って、新しいコードを投機的に一時実行してしまうことがあります。

Linuxでの実験で、研究者らは権限のない古典的BPFプログラムを使いました。まずこのプログラムでこの予測を学習させ、元のプログラムを解放し、再利用されたメモリに別のプログラムを配置しました。
古いターゲットにより、CPUはずれたオフセットにある攻撃者細工の命令を実行しました。その結果、投機的実行中にデータアクセスが発生し、計測可能なキャッシュの痕跡が残ります。研究者らはこの痕跡から、データを1バイトずつ推測しました。
次に、実行中の「su」プロセスを特定し、そのメモリから毎秒8バイトの速度でrootパスワードのハッシュを回復しました。
研究者らは次のように主張しています。「Raptor CoveとLion Coveの両方でエンドツーエンドのエクスプロイトを評価し、パスワードをそれぞれ平均3分と5分で漏えいさせました」
実際には、パスワードハッシュの漏えいは、平文パスワードの入手と同じではありません。ただし攻撃者は、オフラインで、あるいはクラウドのコンピューティングリソースを使ってハッシュの解読を試みることができます。成否はハッシュアルゴリズムとパスワードの強度次第です。
公開された技術論文では、Linuxのcbpfに対する2つのエンドツーエンドのエクスプロイトを示しています。1つはデフォルト設定、もう1つは定数ブラインディングの強化オプションを有効にした環境が対象です。
後者では、攻撃者が制御する命令をジャンプオフセットにエンコードするようエクスプロイトを調整し、それでも5分以内にハッシュを回復できました。

研究者らはさらに、FirefoxのSpiderMonkeyとOracleのGraalVMを別個のJITエンジンとして取り上げ、BTRの影響を調べました。
SpiderMonkeyについては、VUSecの概念実証(PoC)により、コードを再利用しても古い予測が残ることが確認されました。ただし、ブラウザーを完全に攻略するエクスプロイトには至っていません。
GraalVMでは、サンドボックスのチェックを投機的にスキップする方法を特定しました。しかし実験では、エンジンの動作によって予測が消去され、攻撃を完遂することはできませんでした。
実環境への影響について、研究者らは、最近のハードウェアの大半がこの新たなBTR攻撃に対して脆弱だと指摘しています。
VUSecは次のように説明しています。「間接分岐予測は最近のCPUに本質的に備わっており、BTRは分岐予測器とコードの実際の状態との不整合を突きます」
「両者の同期を保つ仕組みを備えたCPUは現時点で存在しません。ベンダーが対策を追加するまで、お使いのCPUは脆弱です」
「テストしたすべてのCPUでこの挙動を確認しました。対象はIntel、AMD、Armに及びます」
ユーザーには、OSとファームウェアのアップデートを適用するよう推奨されています。Linuxユーザーは、最新のカーネルバージョンへアップグレードすることが望まれます。
VUsecはこれまでにも、投機的実行やCPUのマイクロアーキテクチャを狙う攻撃を研究してきました。過去の成果には、RIDL、BHI、SLAMなどがあります。