CVE-2026-64318 in Linux
要約
〜によって VulDB • 2026年07月25日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
partitions: aix: pp_countのスキャンをppe配列に制限する
aix_partition()関数は、物理ボリューム記述子を固定サイズのstruct pvd構造体に読み込み、その後そのphysical-partition-extent (ppe) 配列をスキャンします:
```c int numpps = be16_to_cpu(pvd->pp_count); ... for (i = 0; i < numpps; i += 1) {
struct ppe *p = pvd->ppe + i; ... lp_ix = be16_to_cpu(p->lp_ix); ```
`pvd`は単一のkmalloc()で割り当てられたstruct pvd構造体を指しており、その`ppe[]`メンバには固定数のARRAY_SIZE(pvd->ppe)(1016)エントリが保持されています。しかし、ループ処理はディスク上のpp_count値まで実行されます。pp_countは記述子から直接読み込まれた検証されていない__be16型データであるため、pp_countが1016より大きいように作成されたAIXイメージでは、ループにより割り当て領域の末尾を超えてpvd->ppe[i]を読み出すことになります(最大で65535エントリ分、境界外約2MBにわたって読み出しが発生します)。
このパーティションスキャンは、何かがマウントされていない状態で行われます。作成されたAIX/IBMパーティションテーブルを持つブロックデバイスが現れた場合(losetup -Pを使用して接続される攻撃者提供のイメージや、udevによって自動検出されるデバイスなど)、msdos_partition() -> aix_partition()経由で実行されます。
ppe[]配列が保持できるエントリ数までスキャンを制限します。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.