CVE-2026-74549 in Linux
要約
〜によって VulDB • 2026年08月15日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
hwmon: (nct6775-core) 未対応の重量(weight)レジスタへのアクセスを防止
Sashikoより報告:
nct6116チップの初期化時、ドライバは `data->pwm_num` を5に設定します。しかし、いくつかのNCT6106レジスタ配列(例: NCT6106_REG_WEIGHT_DUTY_STEP, NCT6106_REG_WEIGHT_TEMP_SEL, および NCT6106_REG_WEIGHT_*)を `data->REG_PWM` と `data->REG_WEIGHT_TEMP` に割り当てています。これらの配列は要素が3つしか含まれていません。
nct6775_update_pwm() において、ドライバは `data->pwm_num` までループ処理を行います。もし `data->has_pwm` のビット3または4がセットされている場合(これは構造的に nct6116 で可能)、このループはこれらの要素数3の配列からインデックス3および4にある要素を読み取ろうとします。これにより、グローバルな範囲外読み取りが発生し、KASANによって検出される可能性があります。
さらに、ドライバはこの不正な範囲外の値を後続の読み書き操作のためのハードウェアレジスタアドレスとして使用しています。その結果、無効なハードウェアレジスタアクセスとなり、ハードウェアの設定不具合やシステムクラッシュを引き起こす可能性があります。
根本的な問題は、チップが最大5つのファン制御チャネルをサポートしているものの、重量(weight)制御をサポートするのは最初の3つだけであるという点です。この問題を修正するため、影響を受ける重量レジスタ配列にゼロ埋めされたフィールドを追加します。ドライバは、ゼロ埋めされたレジスタアドレスを使用して、そのレジスタがサポートされているかどうかを判断し、未対応のレジスタに対するアクセスをスキップします。
If you want to get best quality of vulnerability data, you may have to visit VulDB.