製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおける初期化されていないリソースの使用に関する脆弱性
Title LinuxのLinux Kernelにおける初期化されていないリソースの使用に関する脆弱性
Summary

Linuxカーネルにおいて、以下の脆弱性が修正されました。bpf_xdp_store_bytesプロトタイプの修正は、読み取り専用引数に関するものでした。Ciliumで一部のマップをBPF側から読み取り専用にした際に、bpf_xdp_store_bytesプロトタイプに誤りがあることが判明しました。具体的には、検証器が以下のエラーを出していました。ret = ctx_store_bytes(ctx, l3_off + offsetof(struct iphdr, saddr), &nat-address, 4, 0); 635: (79) r1 = *(u64 *)(r10 -144) ; R1はctx()、R10はfp0、fp-144はctx()を示しています。636: (b4) w2 = 26 ; R2は26です。637: (b4) w4 = 4 ; R4は4です。638: (b4) w5 = 0 ; R5は0です。639: (85) call bpf_xdp_store_bytes#190 はマップへの書き込みが禁止されているため、value_size=6、off=0、size=4の書き込みに失敗しました。natはBPF_F_RDONLY_PROGマップから来ており、そのためR3はPTR_TO_MAP_VALUEです。検証器はARG_CONST_SIZE引数に到達するときにcheck_mem_size_regでR3のヘルパーのメモリアクセスをチェックします。第三引数はARG_PTR_TO_UNINIT_MEM型が期待されており、これはMEM_WRITEフラグを含みます。したがって、検証器はR3に対してBPF_WRITEアクセスをチェックします。R3が読み取り専用マップを指しているため、このチェックは失敗しました。一方で、ARG_PTR_TO_UNINIT_MEMはヘルパーが未初期化メモリを読むことも許容します。このパッチは単に期待される引数の型をbpf_skb_store_bytesと一致させることで問題を修正しました。

Possible impacts ・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 ・当該ソフトウェアが扱う情報について、書き換えは発生しません。 ・当該ソフトウェアが完全に停止する可能性があります。 
Solution

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

Publication Date May 27, 2026, midnight
Registration Date June 26, 2026, 11:59 a.m.
Last Update June 26, 2026, 11:59 a.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 5.18 以上 6.1.165 未満
Linux Kernel 6.13 以上 6.18.14 未満
Linux Kernel 6.19 以上 6.19.4 未満
Linux Kernel 6.2 以上 6.6.128 未満
Linux Kernel 6.7 以上 6.12.75 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年06月26日]
  掲載
June 26, 2026, 11:59 a.m.

NVD Vulnerability Information
CVE-2026-45886
Summary

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

bpf: Fix bpf_xdp_store_bytes proto for read-only arg

While making some maps in Cilium read-only from the BPF side, we noticed
that the bpf_xdp_store_bytes proto is incorrect. In particular, the
verifier was throwing the following error:

; ret = ctx_store_bytes(ctx, l3_off + offsetof(struct iphdr, saddr),
&nat->address, 4, 0);
635: (79) r1 = *(u64 *)(r10 -144) ; R1=ctx() R10=fp0 fp-144=ctx()
636: (b4) w2 = 26 ; R2=26
637: (b4) w4 = 4 ; R4=4
638: (b4) w5 = 0 ; R5=0
639: (85) call bpf_xdp_store_bytes#190
write into map forbidden, value_size=6 off=0 size=4

nat comes from a BPF_F_RDONLY_PROG map, so R3 is a PTR_TO_MAP_VALUE.
The verifier checks the helper's memory access to R3 in
check_mem_size_reg, as it reaches ARG_CONST_SIZE argument. The third
argument has expected type ARG_PTR_TO_UNINIT_MEM, which includes the
MEM_WRITE flag. The verifier thus checks for a BPF_WRITE access on R3.
Given R3 points to a read-only map, the check fails.

Conversely, ARG_PTR_TO_UNINIT_MEM can also lead to the helper reading
from uninitialized memory.

This patch simply fixes the expected argument type to match that of
bpf_skb_store_bytes.

Publication Date May 27, 2026, 11:17 p.m.
Registration Date May 28, 2026, 4:11 a.m.
Last Update May 27, 2026, 11:48 p.m.
Related information, measures and tools
Common Vulnerabilities List