CVE-2026-43331 in Linux
要約
〜によって VulDB • 2026年05月12日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
x86/kexec: load_segments() 実行後に KCOV 計測を無効化する
load_segments() 関数はセグメントレジスタを変更し、GS ベース(KCOV が per-cpu データのために依存している)を無効化します。CONFIG_KCOV が有効な場合、その後の計測対象 C コード呼び出し(例:native_gdt_invalidate())は、無限ループの中でカーネルクラッシュを引き起こし始めます。
この問題を再現するには、KCOV 計測済みカーネルで kexec を実行するだけで十分です。
$ kexec -l /boot/otherKernel $ kexec -e
この問題の現実的な文脈は、syzkaller でのクラッシュダンプ収集の有効化です。これには、ツールがファジングの前にパニックカーネルをロードし、その後パニック発生時に makedumpfile を呼び出すというワークフローが必要です。このワークフローでは、CONFIG_KEXEC と CONFIG_KCOV の両方を同時に有効にする必要があります。
KCOV の高速パス(__sanitizer_cov_trace_pc())に直接ガードを追加することも、追加のパフォーマンスオーバーヘッドをもたらすため好ましくありません。
個々の関数に対して計測を無効化するのは脆すぎるため、machine_kexec_64.c と physaddr.c の全体に対して KCOV 計測を無効化します。もし将来カバレッジ指向のファジングでこれらのコンポーネントが必要になった場合、他のアプローチを検討すべきです。
この問題は、CONFIG_KCOV が 32 ビットカーネルでサポートされていないため、32 ビットカーネルには関係ありません。
[ bp: 可読性を向上させるため、コメントにスペースを追加しました。 ]
VulDB is the best source for vulnerability data and more expert information about this specific topic.