Skip to content
Fencer Vulns
medium 5.5

CVE-2026-45886 json

bpf: Fix bpf_xdp_store_bytes proto for read-only arg

published 2026-05-27 5 mo ago modified 2026-11-06 2 d ago also EUVD-2026-32352

cvss
5.5
version 3.1, NVD
cisa kev
Not listed
not in CISA's catalog
epss
0.2%
EPSS 0.2% chance of exploitation in 30 days, percentile 5%
public exploits
0
none known

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.

Patch / fix

  • Linux Linux 6.1.165, 6.6.128, 6.12.75, 6.18.14, 6.19.4, 7.0
  • linux Debian 12 6.1.170-1
  • linux Debian 13 6.12.85-1
  • linux Debian 14 6.18.14-1

debian advisories DEBIAN-CVE-2026-45886

  • linux Ubuntu 24.04 LTS 6.8.0-134.134
  • linux-aws Ubuntu 24.04 LTS 6.8.0-1060.63
  • linux-gcp Ubuntu 24.04 LTS 6.8.0-1063.69
  • linux-gke Ubuntu 24.04 LTS 6.8.0-1058.64
  • linux-ibm Ubuntu 24.04 LTS 6.8.0-1060.61
  • linux-azure Ubuntu 24.04 LTS 6.8.0-1063.71
  • linux-gkeop Ubuntu 24.04 LTS 6.8.0-1045.48
  • linux-raspi Ubuntu 24.04 LTS 6.8.0-1060.64

ubuntu advisories UBUNTU-CVE-2026-45886

Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0

  • kernel-rt Linux Micro 6.1, Linux Micro 6.0 6.4.0-48.1
  • kernel-source-rt Linux Micro 6.1, Linux Micro 6.0 6.4.0-48.1
  • kernel-64kb SLES 15 SP5-LTSS, SLE High Performance Computing 15 SP5-LTSS, SLE High Performance Computing 15 SP5-ESPOS 5.14.21-150500.55.172.2
  • kernel-syms SLES for SAP 15 SP5, SLES 15 SP5-LTSS, SLE High Performance Computing 15 SP5-LTSS +1 more 5.14.21-150500.55.172.1
  • kernel-source SLES for SAP 15 SP5, SLES 15 SP5-LTSS, SLE Micro 5.5 +2 more 5.14.21-150500.55.172.2
  • kernel-default SLES for SAP 15 SP5, SLES 15 SP5-LTSS, SLE Micro 5.5 +3 more 5.14.21-150500.55.172.2
  • kernel-obs-build SLES for SAP 15 SP5, SLES 15 SP5-LTSS, SLE High Performance Computing 15 SP5-LTSS +1 more 5.14.21-150500.55.172.2
  • kernel-default-base SLES for SAP 15 SP5, SLES 15 SP5-LTSS, SLE Micro 5.5 +2 more 5.14.21-150500.55.172.2.150500.6.81.2

suse advisories SUSE-SU-2026:22433-1SUSE-SU-2026:22458-1SUSE-SU-2026:2658-1SUSE-SU-2026:2632-1SUSE-SU-2026:2630-1SUSE-SU-2026:2591-1

  • kernel-rt openSUSE Leap 16.0 6.12.0-160000.35.1
  • dtb-aarch64 openSUSE Leap 16.0 6.12.0-160000.35.1
  • kernel-64kb openSUSE Leap 16.0 6.12.0-160000.35.1
  • kernel-syms openSUSE Leap 16.0 6.12.0-160000.35.1
  • kernel-azure openSUSE Leap 16.0 6.12.0-160000.35.1
  • kernel-obs-qa openSUSE Leap 16.0 6.12.0-160000.35.1
  • kernel-source openSUSE Leap 16.0 6.12.0-160000.35.1
  • kernel-default openSUSE Leap 16.0 6.12.0-160000.35.1

opensuse advisories openSUSE-SU-2026:20965-1

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2026-45886 updated cvss 7.0

kernel: bpf: Fix bpf_xdp_store_bytes proto for read-only arg

  • Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more
    affected: no fix planned “Out of support scope”
  • Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more Red Hat Enterprise Linux 10 kernel
    affected: no fix available
  • Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more
    not affected: vulnerable code not present

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

CISA SSVC

Exploitation
none
Automatable
no
Technical impact
partial
Assessed
2 d ago

Exploit prediction

0.16% chance of exploitation in the next 30 days, higher than 5% of all scored CVEs (FIRST EPSS, 2026-11-08).

CVSS scores

assigned by version score vector
NVD 3.1 5.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Affected products

  • Linux Linux

Classification

Weakness
  • CWE-908 Use of Uninitialized Resource
Technology feeds

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.