CVE-2026-45886
Awaiting Analysis Awaiting Analysis - Queue
BPF XDP Store Bytes Helper Memory Access Fix

Publication date: 2026-05-27

Last updated on: 2026-05-27

Assigner: kernel.org

Description
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.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-05-27
Last Modified
2026-05-27
Generated
2026-06-16
AI Q&A
2026-05-27
EPSS Evaluated
2026-06-15
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
linux_kernel linux_kernel *
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN
Attack-Flow Graph
AI Quick Actions
Instant insights powered by AI
Executive Summary

This vulnerability is in the Linux kernel's BPF (Berkeley Packet Filter) subsystem, specifically related to the bpf_xdp_store_bytes helper function. The issue arises because the function's prototype incorrectly expects a writable memory argument, but in some cases, such as when dealing with read-only maps in Cilium, the verifier rejects the operation because it tries to write to a read-only map value.

The verifier expects the third argument of bpf_xdp_store_bytes to have write permissions (ARG_PTR_TO_UNINIT_MEM), but when the map is read-only, this check fails, causing errors. The patch fixes this by changing the expected argument type to match that of a similar helper, bpf_skb_store_bytes, which correctly handles read-only memory.

Impact Analysis

This vulnerability can cause the Linux kernel's BPF verifier to incorrectly reject valid BPF programs that attempt to write bytes to read-only maps, leading to failures in network functions or applications relying on BPF for packet processing, such as Cilium.

As a result, network performance or functionality could be impaired because certain BPF programs cannot be loaded or executed properly, potentially disrupting services that depend on these programs.

Chat Assistant
Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-45886. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70
EPSS Chart