【活用ガイド】

JVNDB-2026-032003

LinuxのLinux Kernelにおける境界外書き込みに関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。staging: vme_userにおいて、スレーブの読み書きをkern_bufサイズに制限する問題です。SLAVEパスのヘルパー関数buffer_to_user()およびbuffer_from_user()は、固定サイズのkern_buf(size_buf == PCI_BUF_SIZE == 0x20000、128KiB)に対し、*pposをオフセットとして用いて'count'バイトをコピーしますが、*ppos + count が size_buf を超えないように制限していませんでした。vme_user_write()/vme_user_read()ではcountをVMEウィンドウサイズ(image_size = vme_get_size(resource))に制限しています。このVMEウィンドウサイズはユーザーから与えられるslave.sizeをVME_SET_SLAVEが設定し、VMEアドレス空間(最大 VME_A32_MAX = 4GiB)に対して検証していますが、PCI_BUF_SIZEに対しては検証していませんでした。ウィンドウサイズが128KiBを超える場合、write()/read()はkern_bufの割り当て範囲を超えてコピーしてしまいます。両ヘルパー関数ではcountをsize_bufに対し制限し、*pposがバッファの終端またはそれ以降の場合は早期リターンを行うようにしました。ここで*pposは0以上(呼び出し元が負のオフセットを拒否するため)であるため、size_buf - *ppos がオーバーフローすることはありません。この修正は、MASTERパスのヘルパーresource_to_user()/resource_from_user()における既存の制限と一致しており、read()/write()の終端での短い転送という慣例にも合わせています。この問題は静的解析(CodeQLのテイントトラッキングとCBMCの有界モデル検査)によって発見され、その後KASANを利用したvme_fakeブリッジ上での動的確認により確証されました。具体的には以下のようなエラーが報告されています:BUG: KASAN: slab-out-of-bounds in _copy_from_user+0x2d/0x80 Write of size 262144 at addr ffff888004100000 by task trigger/68 _copy_from_user+0x2d/0x80 vme_user_write+0x13e/0x240 [vme_user] vfs_write+0x1b8/0x7a0 ksys_write+0xb8/0x150
CVSS による深刻度 (CVSS とは?)

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


Linux
  • Linux Kernel 2.6.32 以上 6.1.178 未満
  • Linux Kernel 6.13 以上 6.18.39 未満
  • Linux Kernel 6.19 以上 7.1.4 未満
  • Linux Kernel 6.2 以上 6.6.145 未満
  • Linux Kernel 6.7 以上 6.12.96 未満
  • Linux Kernel 7.2

想定される影響

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

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

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

  1. 境界外書き込み(CWE-787) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-64449
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-64449
  2. 関連文書 : staging: vme_user: bound slave read/write to the kern_buf size - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/65358d89dc9f1c25d9364b2b3ef0f3b47717f9ed)
  3. 関連文書 : staging: vme_user: bound slave read/write to the kern_buf size - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/adc8b9c30d716c362646edb45662aa1c641a154a)
  4. 関連文書 : staging: vme_user: bound slave read/write to the kern_buf size - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/8eff7cd4817e14dbe3b9952cce55ef52d1d38940)
  5. 関連文書 : staging: vme_user: bound slave read/write to the kern_buf size - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/9f32f38265014fac7f5dc9490fb01a638ce6e121)
  6. 関連文書 : staging: vme_user: bound slave read/write to the kern_buf size - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/1b495fa0d4927c88d88bf346bf311f2e26e860ed)
  7. 関連文書 : staging: vme_user: bound slave read/write to the kern_buf size - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/e99f2df433c63c86c93de1e5f08f16e404388756)
更新履歴

  • [2026年09月04日]
      掲載