製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおける境界外読み取りに関する脆弱性
Title LinuxのLinux Kernelにおける境界外読み取りに関する脆弱性
Summary

Linuxカーネルにおいて、以下の脆弱性が修正されました。bpf: BPF_OR用のmaybe_fork_scalars()における不適切なスカラー分岐を修正しました。maybe_fork_scalars()はソースオペランドが定数の場合にBPF_ANDおよびBPF_ORの両方で呼び出されます。dstの符号付き範囲が[-1, 0]の場合、検証状態を分岐させます。分岐先のパスはdst=0、現在のパスはdst=-1となります。BPF_ANDの場合、これは正しく(0 & K == 0)ですが、BPF_ORの場合は誤っています(0 | K == Kであり0ではありません)。したがって分岐先のパスは実行時の値がKであるにもかかわらずdstを0として追跡し、検証器と実行時の不整合を生み、境界外のマップアクセスを可能にする悪用可能な状態を作り出していました。この問題は、push_stack()にenv-insn_idx(env-insn_idx + 1ではなく)を渡すことで修正されており、分岐先のパスがdst=0でALU命令を再実行し、任意のオペコードに対して自然に正しい結果を計算するようになりました。

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

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

Publication Date April 12, 2026, midnight
Registration Date May 22, 2026, 10:56 a.m.
Last Update May 22, 2026, 10:56 a.m.
CVSS3.0 : 重要
Score 7.8
Vector CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Affected System
Linux
Linux Kernel 6.12.75 以上 6.12.80 未満
Linux Kernel 6.18.16 以上 6.18.21 未満
Linux Kernel 6.19.6 以上 6.19.11 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年05月22日]
  掲載
May 22, 2026, 10:56 a.m.

NVD Vulnerability Information
CVE-2026-31413
Summary

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

bpf: Fix unsound scalar forking in maybe_fork_scalars() for BPF_OR

maybe_fork_scalars() is called for both BPF_AND and BPF_OR when the
source operand is a constant. When dst has signed range [-1, 0], it
forks the verifier state: the pushed path gets dst = 0, the current
path gets dst = -1.

For BPF_AND this is correct: 0 & K == 0.
For BPF_OR this is wrong: 0 | K == K, not 0.

The pushed path therefore tracks dst as 0 when the runtime value is K,
producing an exploitable verifier/runtime divergence that allows
out-of-bounds map access.

Fix this by passing env->insn_idx (instead of env->insn_idx + 1) to
push_stack(), so the pushed path re-executes the ALU instruction with
dst = 0 and naturally computes the correct result for any opcode.

Publication Date April 12, 2026, 3:16 p.m.
Registration Date April 15, 2026, 11:37 a.m.
Last Update April 14, 2026, 12:01 a.m.
Related information, measures and tools
Common Vulnerabilities List