AMDは、Zen 2コアのCPUのレジスタに、正しく0が書き込まれない不具合があり、攻撃者が別のプロセスやスレッドからYMMレジスタに保存された機密情報などを読める脆弱性があると発表した。AMDは「AMD-SB-7008」、共通脆弱性識別子は「CVE-2023-20593」として割り当てられた。
深刻性は「中」とされており、BIOSアップデートを通したAGESAファームウェアの更新で対処する。データセンター向けの第2世代EPYCプロセッサはμコード0x0830107A、AGESA RomePI 1.0.0.Hで修正を行なうほか、デスクトップやハイエンドデスクトップは10月以降の配布を予定している。
プロセッサ | ファームウェア | 時期 |
---|---|---|
Ryzen 3000(Matisse) | ComboAM4v2PI_1.2.0.C ComboAM4PI_1.0.0.C | 2023年12月目標 |
Ryzen 4000(Renoir) | ComboAM4v2PI_1.2.0.C | 2023年12月目標 |
Ryzen Threadripper 3000(Castle Peak) | CastlePeakPI-SP3r3 1.0.0.A | 2023年10月目標 |
Ryzen Threadripper PRO 3000WX(Castle Peak WS SP3) | CastlePeakWSPI-sWRX8 ChagallWSPI-sWRX8 1.0.0.7 1.0.0.C | 2023年11月目標 |
Ryzen 5000(Lucienne、モバイル) | CezannePI-FP6_1.0.1.0 | 2023年12月目標 |
Ryzen 4000(Renoir、モバイル) | RenoirPI-FP6_1.0.0.D | 2023年11月目標 |
Ryzen 7020(Mendocino、モバイル) | MendocinoPI-FT6_1.0.0.6 | 2023年12月目標 |
この脆弱性は「Zenbleed」と名付けられており、Google Information SecurityのTavis Ormandy氏のファジングによって発見され、5月15日にAMDに対して報告された。対処まではDE_CFG[9]というチキンビットを設定すれば回避できるが、性能に影響を与える可能性がある。
Zenbleed脆弱性の詳細
Zenbleedの脆弱性の詳細は既に公開されているのだが、ざっくり言ってしまえば「vzeroupper」と呼ばれる命令のバグである。
現代的なx86 CPUは128bitのXMMと呼ばれるベクタレジスタを必ず備えているが、最新のCPUはYMMとZMMと呼ばれる256bit/512bitの拡張レジスタも用意している。しかしこれらは独立しているわけではなく、たとえばXMMはYMMの上位(upper)バイトとなっている形だ。
しかし、たとえばYMMの下位(lower)しか使われず、上位のXMM相当部が使われなかった場合、XMMはフル幅に自動的に昇格する。これは、スーパースカラプロセッサではどの操作を並列化できるかを認識するために、依存関係を追跡するためだ。ところがフル幅では、プロセッサは不必要な結果を待つこととなりストールする。そこでglibcライブラリでは、vzeroupperを使いXMMのリソースを解放する。
ただvzeroupperでは、実際にレジスタに0を書き込むのではなく、レジスタアロケーションテーブル(RAT)と呼ばれるところに「z-bit」と呼ばれるフラグを立てる“だけ”の挙動になっている。
最新のプロセッサでは投機実行しているため、たとえば分岐予測ミスが発生した場合、操作を元に戻す必要がある。ところがvzeroupperでリソースを解放したのにも関わらず操作を元に戻すと、当然use-after-freeという脆弱性が発生してしまう。
本来CPUでは発生してはならないuse-after-freeなわけだが、Zen 2のCPUではバグによって発生。同じウィンドウの中でZen 2に実装されたXMM Register Merge Optimization最適化(EPYC 7003ソフトウェア最適化ガイドより)が行なわれると、空きの下位レジスタも上位レジスタとマージしてz-bitフラグを立てられる。そこに続けてレジスタのリネーム、そしてvzeroupper分岐予測ミスが続けば、情報などが復元されてしまうとしている。
実際に研究者はこの手法を用いて、1秒/1コアあたり30KB程度の情報をリークさせることに成功。これは、暗号キーやログインパスワードをモニタリングするのに十分な容量を達成できたとしている。
https://news.google.com/rss/articles/CBMiNWh0dHBzOi8vcGMud2F0Y2guaW1wcmVzcy5jby5qcC9kb2NzL25ld3MvMTUxODc2Ni5odG1s0gEA?oc=5
2023-07-25 04:33:56Z
2278626733
Tidak ada komentar:
Posting Komentar