半導体メーカーのAMDは、幅広いチップセットに影響を与え、情報漏洩につながる可能性のある新たな脆弱性の存在を警告しています。
この攻撃は「一時的スケジューラ攻撃(Transient Scheduler Attacks、TSA)」と呼ばれ、特定のマイクロアーキテクチャ条件下で命令の実行タイミングを利用する、CPUにおける投機的サイドチャネルとして現れます。
「場合によっては、攻撃者がこのタイミング情報を利用して他のコンテキストからデータを推測し、情報漏洩につながる可能性があります」とAMDはアドバイザリで述べています。
同社によると、これらの問題は、MicrosoftおよびETH Zurichの研究者による研究の一環として発見されました。この研究では、仮想マシン、カーネル、プロセスなどのセキュリティドメイン間の分離をストレステストすることで、MeltdownやForeshadowのような投機的実行攻撃に対して最新CPUをテストしました。
2024年6月の責任ある情報開示を受けて、以下のCVE識別子が割り当てられました。
- CVE-2024-36350(CVSSスコア:5.6)- 一部のAMDプロセッサにおける一時的実行の脆弱性により、攻撃者が以前のストアからデータを推測し、特権情報が漏洩する可能性があります。
- CVE-2024-36357(CVSSスコア:5.6)- 一部のAMDプロセッサにおける一時的実行の脆弱性により、攻撃者がL1Dキャッシュ内のデータを推測し、特権境界を越えた機密情報の漏洩につながる可能性があります。
- CVE-2024-36348(CVSSスコア:3.8)- 一部のAMDプロセッサにおける一時的実行の脆弱性により、UMIP[3]機能が有効であっても、ユーザープロセスが制御レジスタを投機的に推測でき、情報漏洩につながる可能性があります。
- CVE-2024-36349(CVSSスコア:3.8)- 一部のAMDプロセッサにおける一時的実行の脆弱性により、ユーザープロセスがTSC_AUXを推測でき、情報漏洩につながる可能性があります(この読み取りが無効化されていても)。
AMDはTSAを「自社CPUに影響する新しいクラスの投機的サイドチャネル」と説明し、影響を受けるプロセッサ向けにマイクロコードアップデートをリリースしたと述べています。
- 第3世代 AMD EPYC プロセッサ
- 第4世代 AMD EPYC プロセッサ
- AMD Instinct MI300A
- AMD Ryzen 5000 シリーズ デスクトッププロセッサ
- Radeonグラフィックス搭載 AMD Ryzen 5000 シリーズ デスクトッププロセッサ
- AMD Ryzen 7000 シリーズ デスクトッププロセッサ
- Radeonグラフィックス搭載 AMD Ryzen 8000 シリーズ プロセッサ
- AMD Ryzen Threadripper PRO 7000 WXシリーズ プロセッサ
- Radeonグラフィックス搭載 AMD Ryzen 6000 シリーズ プロセッサ
- Radeonグラフィックス搭載 AMD Ryzen 7035 シリーズ プロセッサ
- Radeonグラフィックス搭載 AMD Ryzen 5000 シリーズ プロセッサ
- Radeonグラフィックス搭載 AMD Ryzen 7000 シリーズ プロセッサ
- Radeonグラフィックス搭載 AMD Ryzen 7040 シリーズ プロセッサ
- Radeonグラフィックス搭載 AMD Ryzen 8040 シリーズ モバイルプロセッサ
- AMD Ryzen 7000 シリーズ モバイルプロセッサ
- AMD EPYC Embedded 7003
- AMD EPYC Embedded 8004
- AMD EPYC Embedded 9004
- AMD EPYC Embedded 97X4
- AMD Ryzen Embedded 5000
- AMD Ryzen Embedded 7000
- AMD Ryzen Embedded V3000
同社はまた、メモリからデータを読み込む命令が「誤った完了(false completion)」と呼ばれる現象を経験する場合があると指摘しています。これは、CPUハードウェアがロード命令が迅速に完了すると予想しているにもかかわらず、何らかの条件によってそれが妨げられる場合に発生します。
この場合、依存する操作が誤った完了が検出される前に実行スケジュールに入ることがあります。ロードが実際には完了していないため、そのロードに関連するデータは無効と見なされます。ロードは後で再実行されて正常に完了し、依存する操作も有効なデータで再実行されます。
Predictive Store Forwardingのような他の投機的挙動とは異なり、誤った完了を経験したロードは最終的なパイプラインフラッシュを引き起こしません。誤った完了に関連する無効なデータが依存する操作に転送される場合でも、このデータを消費するロードおよびストア命令はデータの取得やキャッシュ、TLBの状態更新を試みません。そのため、この無効なデータの値は標準的な一時的サイドチャネル手法では推測できません。
しかし、TSAの影響を受けるプロセッサでは、この無効なデータがCPUで実行される他の命令のタイミングに影響を与え、攻撃者が検出できる可能性があります。
AMDは、誤った完了に関連する無効なデータの発生源に基づき、TSAにはTSA-L1とTSA-SQの2つのバリアントがあるとしています。前者はL1データキャッシュ、後者はCPUストアキューが発生源です。
最悪の場合、TSA-L1またはTSA-SQの脆弱性を利用した攻撃が成功すると、OSカーネルからユーザーアプリケーション、ハイパーバイザーからゲスト仮想マシン、あるいは2つのユーザーアプリケーション間で情報漏洩が発生する可能性があります。
TSA-L1はL1キャッシュがデータキャッシュ検索にマイクロタグを使用する方法のエラーによって引き起こされ、TSA-SQの脆弱性は、必要なデータがまだ利用できない場合にロード命令が誤ってCPUストアキューからデータを取得することで発生します。どちらの場合でも、攻撃者はL1キャッシュ内や古いストアで使用された任意のデータを推測でき、たとえ異なるコンテキストで実行されていたとしても影響を受けます。
ただし、これらの脆弱性を悪用するには、攻撃者がマシンへの悪意あるアクセス権を取得し、任意のコードを実行できる必要があります。悪意あるウェブサイト経由での悪用はできません。
「TSAを悪用するために必要な条件は通常一時的であり、CPUが誤った完了を検出した後、マイクロタグやストアキューは更新されます」とAMDは述べています。
「したがって、データを確実に外部に持ち出すには、攻撃者は通常、被害者を何度も呼び出して誤った完了の条件を繰り返し作り出す必要があります。これは、攻撃者と被害者の間に既存の通信経路(アプリケーションとOSカーネル間など)がある場合に最も可能性が高いです。」
翻訳元: https://thehackernews.com/2025/07/amd-warns-of-new-transient-scheduler.html