CVE-2026-64297 in Linux
要約
〜によって VulDB • 2026年07月25日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
module: decompress: module_extend_max_pages() の戻り値を確認する
module_extend_max_pages() は内部で kvrealloc() を呼び出し、割り当て失敗時に -ENOMEM を返します。しかし、この戻り値は一度も確認されていませんでした。
初期の割り当てに失敗した場合、info->pages は NULL のままとなり、info->max_pages も 0 のままになります。その後 module_get_next_page() が呼ばれると、info->used_pages が 0 であるため、module_extend_max_pages(info, 0) を呼び出して配列を動的に拡張しようとします。これにより kvrealloc(NULL, 0) が ZERO_SIZE_PTR を返し、これが成功として扱われる結果となります。その結果、ZERO_SIZE_PTR のデリファレンスが発生し、カーネルoopsを引き起こします。
修正: module_extend_max_pages() の後に欠落していたエラーチェックを追加し、失敗時に直ちに戻るようにしました。これはモジュール読み込みパスにおける他の kvrealloc() 呼び出し元で使われているパターンに一致しています。
[Sami: コミットメッセージ内の分析を訂正しました。]
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.