製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおける不特定の脆弱性
Title LinuxのLinux Kernelにおける不特定の脆弱性
Summary

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

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

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

Publication Date May 8, 2026, midnight
Registration Date May 20, 2026, 1:28 p.m.
Last Update May 20, 2026, 1:28 p.m.
CVSS3.0 : 警告
Score 5.5
Vector CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Affected System
Linux
Linux Kernel 6.19 以上 6.19.12 未満
Linux Kernel 6.6 以上 6.18.22 未満
Linux Kernel 7.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年05月20日]
  掲載
May 20, 2026, 1:28 p.m.

NVD Vulnerability Information
CVE-2026-43331
Summary

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. ]

Publication Date May 8, 2026, 11:16 p.m.
Registration Date May 9, 2026, 4:13 a.m.
Last Update May 12, 2026, 11:10 p.m.
Related information, measures and tools
Common Vulnerabilities List