LinuxのLinux Kernelにおける不特定の脆弱性
タイトル LinuxのLinux Kernelにおける不特定の脆弱性
概要

Linuxカーネルにおいて、x86/kexecのload_segments()実行後にKCOV計測が無効化される問題が修正されました。この関数はセグメントレジスタやGSベースを変更し、CONFIG_KCOVが有効な場合には計測付きコード呼び出しでカーネルが無限ループに陥る原因となっていました。問題の再現はKCOV対応カーネルでのkexec実行で簡単に可能です。特に、syzkallerのクラッシュダンプ収集でCONFIG_KEXECとCONFIG_KCOVが同時に有効な状況で顕著に現れていました。KCOVの高速パスに直接安全策を加えるとパフォーマンスに悪影響が出るため、該当するカーネルコード全体でKCOV計測を無効化しました。将来的にこれらのコンポーネントがカバレッジ誘導型ファズィングに必要となる場合は、別の対策が求められます。CONFIG_KCOV非対応の32ビットカーネルには影響がありません。

想定される影響 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
対策

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。

公表日 2026年5月8日0:00
登録日 2026年5月20日13:28
最終更新日 2026年5月20日13:28
CVSS3.0 : 警告
スコア 5.5
ベクター CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
影響を受けるシステム
Linux
Linux Kernel 6.19 以上 6.19.12 未満
Linux Kernel 6.6 以上 6.18.22 未満
Linux Kernel 7.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
変更履歴
No 変更内容 変更日
1 [2026年05月20日]
  掲載
2026年5月20日13:28

NVD脆弱性情報
CVE-2026-43331
概要

In the Linux kernel, the following vulnerability has been resolved:

x86/kexec: Disable KCOV instrumentation after load_segments()

The load_segments() function changes segment registers, invalidating GS base
(which KCOV relies on for per-cpu data). When CONFIG_KCOV is enabled, any
subsequent instrumented C code call (e.g. native_gdt_invalidate()) begins
crashing the kernel in an endless loop.

To reproduce the problem, it's sufficient to do kexec on a KCOV-instrumented
kernel:

$ kexec -l /boot/otherKernel
$ kexec -e

The real-world context for this problem is enabling crash dump collection in
syzkaller. For this, the tool loads a panic kernel before fuzzing and then
calls makedumpfile after the panic. This workflow requires both CONFIG_KEXEC
and CONFIG_KCOV to be enabled simultaneously.

Adding safeguards directly to the KCOV fast-path (__sanitizer_cov_trace_pc())
is also undesirable as it would introduce an extra performance overhead.

Disabling instrumentation for the individual functions would be too fragile,
so disable KCOV instrumentation for the entire machine_kexec_64.c and
physaddr.c. If coverage-guided fuzzing ever needs these components in the
future, other approaches should be considered.

The problem is not relevant for 32 bit kernels as CONFIG_KCOV is not supported
there.

[ bp: Space out comment for better readability. ]

公表日 2026年5月8日23:16
登録日 2026年5月9日4:13
最終更新日 2026年5月12日23:10
関連情報、対策とツール
共通脆弱性一覧