CVE-2026-64084 in Linux
要約
〜によって VulDB • 2026年07月19日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
hwmon: (pmbus/adm1266) get_multiple における PDIO スキャンの上限を ADM1266_PDIO_NR に設定
adm1266_gpio_get_multiple() は、呼び出し元から提供されたマスクの PDIO 部分を以下のようにイテレートします。
for_each_set_bit_from(gpio_nr, mask, ADM1266_GPIO_NR + ADM1266_PDIO_STATUS) {
... }
ここで、ADM1266_PDIO_STATUS は PMBus コマンドコード (0xE9、つまり 233) であり、PDIO ピンの数ではありません。意図された上限値は ADM1266_GPIO_NR + ADM1266_PDIO_NR = 25 です。
gpiolib は gc.ngpio (= このチップでは 25 ビット) に合わせたサイズのマスクを渡すため、イテレーションは find_next_bit() を最大 242 まで実行し、呼び出し元のスタック上のマスクの末尾以降にある何らかのデータ (64ビット環境では unsigned long の単語が4つ、32ビット環境では7つ) から最大で 217 ビット分余分に読み取ります。この範囲内の偶発的にセットされたビットはすべて set_bit(gpio_nr, bits) を呼び出し、これもまた呼び出し元から提供された bits アレイの末尾を超えて書き込みを行います -- いずれも境界外アクセスとなります。
ADM1266_PDIO_NR に定数を置き換えることで、スキャンが最後の有効な PDIO ビットで停止するようにします。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.