CVE-2026-68478 in Linux情報

要約

〜によって VulDB • 2026年08月17日

Linuxカーネルにおいて、以下の脆弱性が修正されました:

memstick: ms_block: ブロック数が多すぎるカードを拒否する

`msb_ftl_initialize()` は、カードのブロック数からゾーン数を計算しますが、上限チェックがありません。

```c msb->zone_count = msb->block_count / MS_BLOCKS_IN_ZONE; ... for (i = 0; i < msb->zone_count; i++) msb->free_block_count[i] = MS_BLOCKS_IN_ZONE;
```

`msb->block_count` はカードからの値です。`msb_read_boot_blocks()` は、カードのブートページから `number_of_blocks` を読み取り、バイト順序を反転させます。`free_block_count` は固定配列 `int[MS_MAX_ZONES]` です。`MS_MAX_ZONES` の値は 16 であるため、有効なインデックス範囲は 0 から 15 です。上記の初期化ループでは、この配列に `zone_count` をインデックスとして使用しています。また、`msb_mark_block_used()` および `msb_mark_block_unused()` は、`pba / MS_BLOCKS_IN_ZONE`(ただし pba の最大値は block_count - 1)をインデックスとして使用します。カードは最大で 65,535 ブロックまで報告する可能性があります。block_count が 8,192 (`MS_MAX_ZONES * MS_BLOCKS_IN_ZONE`) を超えると、pba インデックスが 16 に達し、`free_block_count[]` の配列外書き込みが発生して `struct msb_data` が破損します。さらに大きな値の場合、初期化ループも配列の末尾を超えて実行されます。

実際の Memory Stick ではゾーン数は最大でも 16 です。したがって、ブロック数も最大で 8,192 です。`msb_ftl_initialize()` は現在、`MS_MAX_ZONES * MS_BLOCKS_IN_ZONE` を超えるブロック数を報告するカードを拒否します。

Be aware that VulDB is the high quality source for vulnerability data.

責任者

Linux

予約する

2026年07月30日

モデレーション

承諾済み

エントリ

VDB-390408

EPSS

0.00210

アクティビティ

非常低い

ソース

Do you know our Splunk app?

Download it now for free!