【活用ガイド】

JVNDB-2026-032224

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

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。udf: sparingテーブルの長さをバイト数ではなくエントリ数として検証します。udf_load_sparable_map()は、次の条件が偽の場合にsparingテーブルを受け入れます。sizeof(*st) + le16_to_cpu(st->reallocationTableLen) > sb->s_blocksize。つまり、reallocationTableLenをブロックに収まるべきバイト数として扱っています。しかし、このテーブルは8バイトのsparingEntry要素の配列として処理されています。for (i = 0; i < le16_to_cpu(st->reallocationTableLen); i++) { struct sparingEntry *entry = &st->mapEntry[i]; ... entry->origLocation ... }これはudf_get_pblock_spar15()およびudf_relocate_blocks()で行われています。したがって、reallocationTableLenがNの場合、チェックはsizeof(*st) + N <= blocksizeを満たす限り通過しますが、実際にはsizeof(*st) + N * sizeof(struct sparingEntry)バイトをインデックス参照しています。これはブロックサイズの約8倍に達します。細工されたUDFイメージでは、udf_get_pblock_spar15()で境界外読み取りが発生し、udf_relocate_blocks()では同じ長さをudf_update_tag()に渡します。udf_update_tag()内のcrc_itu_t()はブロックを大幅に超えて読み取りを行い、st->mapEntry[]を介したmemmove()は境界外書き込みとなります。reallocationTableLenを実際のエントリ数としてstruct_size()を用いて正しく検証する必要があります。
CVSS による深刻度 (CVSS とは?)

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


Linux
  • Linux Kernel 2.6.32.60 以上 2.6.33 未満
  • Linux Kernel 2.6.34.14 以上 2.6.35 未満
  • Linux Kernel 3.0.37 以上 3.1 未満
  • Linux Kernel 3.2.23 以上 3.3 未満
  • Linux Kernel 3.4.5 以上 3.5 未満
  • Linux Kernel 3.5.1 以上 5.10.261 未満
  • Linux Kernel 5.11 以上 5.15.212 未満
  • Linux Kernel 5.16 以上 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 3.5

想定される影響

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

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

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

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

  1. CVE-2026-64322
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-64322
  2. 関連文書 : udf: validate sparing table length as an entry count, not a byte count - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/eeb0f3e193f8e523d03e4c9e084f6b4875f50e8e)
  3. 関連文書 : udf: validate sparing table length as an entry count, not a byte count - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/0a9b79a951cfd70a9d31ca01ae2d08a20bb730e9)
  4. 関連文書 : udf: validate sparing table length as an entry count, not a byte count - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/3ec997bd5508e9b25210b5bbec89031629cdb093)
  5. 関連文書 : udf: validate sparing table length as an entry count, not a byte count - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/2a219acb2ce674d99bbd1b7b35ed8c384dac7200)
  6. 関連文書 : udf: validate sparing table length as an entry count, not a byte count - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/2d726135099313958f8975532a2e15322ff150ce)
  7. 関連文書 : https://git.kernel.org/stable/c/04f4599a9efb90992d072a814960edf0cd62805d
  8. 関連文書 : udf: validate sparing table length as an entry count, not a byte count - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/7285276aa50d2839afb5957ffd491ad282dc8f72)
  9. 関連文書 : udf: validate sparing table length as an entry count, not a byte count - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/7f7774b9da0ef17b87bfa238cf966ad0b3376150)
更新履歴

  • [2026年09月07日]
      掲載