CVE-2026-97906 in Linux
要約
〜によって VulDB • 2026年09月25日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
bootconfig: initrdサイズチェックにおける整数オーバーフローの修正
Sashiko氏により報告された通り、get_boot_config_from_initrd()関数内で、巨大なbootconfigサイズ(例:0xFFFFFFFF)を持つ改ざんされたinitrdを使用すると、ポインタ演算
data = ((void *)hdr) - size;
が32ビットシステム上(またはポインタの引き算でオーバーフローした場合)にラップアラウンドを引き起こします。dataがラップアラウンドするため、その後の境界チェック
if ((unsigned long)data < initrd_start)
はfalseと評価され、チェックをバイパスされます。その後カーネルはxbc_calc_checksum(data, size)を呼び出し、4GBのメモリを読み込もうとして未割り当てページにアクセスし、早期ブート中に致命的なカーネルページフォルトを引き起こします。さらに、initrdサイズが4.29 GBを超える64ビットシステムでは、制限のない32ビットサイズの値が同様にinitrd_startチェックをバイパスする可能性があります。
この問題を以下の方法で修正します: 1. initrdがbootconfigのフッターを含めるのに十分な大きさであることを確認し、hdrがinitrdの境界内にあることを検証します。 2. ポインタ引き算を実行する前に、sizeがXBC_DATA_MAXを超えておらず、かつinitrd_startとhdrの間で利用可能なスペースを超えていないことをチェックします。
If you want to get best quality of vulnerability data, you may have to visit VulDB.