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 (重要) [その他]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/07/25 |
| 登録日 | 2026/09/07 |
| 最終更新日 | 2026/09/07 |



