【活用ガイド】

JVNDB-2026-024877

LinuxのLinux Kernelにおける境界外読み取りに関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。KVM: SEV: GHCB v2以降を使用する場合、GHCBのscratch領域の必須化が行われました。GHCB仕様に準じて、GHCB v2以降を使用する際はソフトウェア用のscratch領域を必ずGHCBの共有バッファに配置しなければなりません。なお、Page State Change(PSC)リクエストなどはこの動作に依存しており、ゲストはリクエスト時に長さを指定できないため、ゲストのペイロードのサイズは共有バッファのサイズによって制限されます。GHCBの利用を強制しなかったことやその他の複数の欠陥により、悪意のあるSNPゲストがホストカーネルのヒープメモリを破壊したり、ホストのヒープレイアウト情報を漏洩させたりできてしまいます。setup_vmgexit_scratch()はguest制御下のexit_info_2を使ってkvzalloc(exit_info_2)によりバッファを割り当てます。exit_info_2=24の場合、kmalloc-cg-32(32バイトスラブオブジェクト)の24バイトが割り当てられます。このバッファは8バイトのpsc_hdrと8バイトのpsc_entry構造体の配列を保持し、entries[0]とentries[1]のみが範囲内にあります。snp_begin_psc()はend_entryをVMGEXIT_PSC_MAX_COUNT(253)に対して検証しますが、実際のバッファサイズに対しては検証しません。 idx_end = hdr->end_entry; if (idx_end >= VMGEXIT_PSC_MAX_COUNT) { snp_complete_psc(svm, ...); return 1; } for (idx = idx_start; idx <= idx_end; idx++) { entry_start = entries[idx]; // idx >= 2で範囲外アクセスゲストがend_entry=10以上を設定すると、ホストはentries[2]以上を走査し、隣接するスラブオブジェクトへOOBアクセスを行います。各OOBエントリに対しては以下のことが発生します。 - ホストは8バイトを読み取る(OOBリード/情報漏洩のオラクル)。 - データがPSC検証に通ると__snp_complete_one_psc()によりcur_page=1または512がエントリに書き込まれる(OOBライト、sev.c:3806)。 - 検証失敗時のエラー応答は隣接メモリがゼロか非ゼロかを判別させ、ゲストへの情報開示につながる可能性があります。ゲストは割り当てサイズ(exit_info_2)とエントリ範囲(cur_entry/end_entry)の制御により、無制限にVMGEXITを発火させて異なるスラブ位置を繰り返し攻撃可能です。これらの複数の脆弱性を悪用することで、悪意あるSEV-SNPゲストは以下の行為を実現できます。 - 隣接するkmalloc-cg-32オブジェクトをOOB読み取りしヒープレイアウト情報を漏洩する。 - 隣接オブジェクトへcur_pageビットを書き込みヒープ破損を引き起こす。 - 複数VMGEXITを跨いだuse-after-free状態を誘発する。例えばKASAN有効時にPoCゲストモジュールを一度insmodするだけで73件のKASANレポートが生成されます。 BUG: KASAN: slab-out-of-bounds in snp_begin_psc+0x126/0x890 Read of size 8 at addr ffff888219ffb5e0 by task qemu-system-x86/2199 BUG: KASAN: slab-out-of-bounds in snp_begin_psc+0x468/0x890 Write of size 8 at addr ffff888351566648 by task qemu-system-x86/2199バグのあるアドレスはkmalloc-cg-32キャッシュに属し、32バイトのオブジェクトの右側Nバイト目に位置しています。内訳は以下のとおりです。 - 62件のスラブ範囲外アクセス(読み書き) - 7件のスラブuse-after-free - 4件のuse-after-free詳細な説明と再現コードの提供については、Stan氏にすべての功績があります。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 8.8 (重要) [その他]
  • 攻撃元区分: ローカル
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 低
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更あり
  • 機密性への影響(C): 高
  • 完全性への影響(I): 高
  • 可用性への影響(A): 高
影響を受けるシステム


Linux
  • Linux Kernel 6.10 以上 6.12.93 未満
  • Linux Kernel 6.13 以上 6.18.35 未満
  • Linux Kernel 6.19 以上 7.0.12 未満
  • Linux Kernel 7.1

想定される影響

・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。
・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。
・当該ソフトウェアが完全に停止する可能性があります。
対策

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。
ベンダ情報

CWEによる脆弱性タイプ一覧  CWEとは?

  1. 境界外読み取り(CWE-125) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-53360
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-53360
  2. 関連文書 : KVM: SEV: Require in-GHCB scratch area if GHCB v2+ is in use - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/bf9ba093fbb83c0c9a3dedd50efec29424eca2fc)
  3. 関連文書 : KVM: SEV: Require in-GHCB scratch area if GHCB v2+ is in use - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/c9b4198fbc6ed99a9da4bee9f74bb730f926c9ae)
  4. 関連文書 : KVM: SEV: Require in-GHCB scratch area if GHCB v2+ is in use - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/db3f2195d29344a3cf1e9dd9ab7f21ced7308cf7)
  5. 関連文書 : KVM: SEV: Require in-GHCB scratch area if GHCB v2+ is in use - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/b328ede59ac34e7998e1eee5e5f0cc26c2a91846)
更新履歴

  • [2026年07月24日]
      掲載