Vulnerability · Published May 27, 2026 · Assigned by Linux

CVE-2026-45933bpf: Preserve id of register in sync_linked_regs()

High 7.8

In plain English

A high-severity security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 9% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)7.8High
Exploit odds (30 days)0.2%top 90.6% of all CVEs
Exploited in the wildNo reportsCISA SSVC: none
Attack toolingNoneno public tooling known

Official description

In the Linux kernel, the following vulnerability has been resolved: bpf: Preserve id of register in sync_linked_regs() sync_linked_regs() copies the id of known_reg to reg when propagating bounds of known_reg to reg using the off of known_reg, but when known_reg was linked to reg like: known_reg = reg ; both known_reg and reg get same id known_reg += 4 ; known_reg gets off = 4, and its id gets BPF_ADD_CONST now when a call to sync_linked_regs() happens, let's say with the following: if known_reg >= 10 goto pc+2 known_reg's new bounds are propagated to reg but now reg gets BPF_ADD_CONST from the copy. This means if another link to reg is created like: another_reg = reg ; another_reg should get the id of reg but assign_scalar_id_before_mov() sees BPF_ADD_CONST on reg and assigns a new id to it. As reg has a new id now, known_reg's link to reg is broken. If we find new bounds for known_reg, they will not be propagated to reg. This can be seen in the selftest added in the next commit: 0: (85) call bpf_get_prandom_u32#7 ; R0=scalar() 1: (57) r0 &= 255 ; R0=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff)) 2: (bf) r1 = r0 ; R0=scalar(id=1,smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff)) R1=scalar(id=1,smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff)) 3: (07) r1 += 4 ; R1=scalar(id=1+4,smin=umin=smin32=umin32=4,smax=umax=smax32=umax32=259,var_off=(0x0; 0x1ff)) 4: (a5) if r1 < 0xa goto pc+4 ; R1=scalar(id=1+4,smin=umin=smin32=umin32=10,smax=umax=smax32=umax32=259,var_off=(0x0; 0x1ff)) 5: (bf) r2 = r0 ; R0=scalar(id=2,smin=umin=smin32=umin32=6,smax=umax=smax32=umax32=255) R2=scalar(id=2,smin=umin=smin32=umin32=6,smax=umax=smax32=umax32=255) 6: (a5) if r1 < 0xe goto pc+2 ; R1=scalar(id=1+4,smin=umin=smin32=umin32=14,smax=umax=smax32=umax32=259,var_off=(0x0; 0x1ff)) 7: (35) if r0 >= 0xa goto pc+1 ; R0=scalar(id=2,smin=umin=smin32=umin32=6,smax=umax=smax32=umax32=9,var_off=(0x0; 0xf)) 8: (37) r0 /= 0 div by zero When 4 is verified, r1's bounds are propagated to r0 but r0 also gets BPF_ADD_CONST (bug). When 5 is verified, r0 gets a new id (2) and its link with r1 is broken. After 6 we know r1 has bounds [14, 259] and therefore r0 should have bounds [10, 255], therefore the branch at 7 is always taken. But because r0's id was changed to 2, r1's new bounds are not propagated to r0. The verifier still thinks r0 has bounds [6, 255] before 7 and execution can reach div by zero. Fix this by preserving id in sync_linked_regs() like off and subreg_def.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:13linux6.12.85-1DEBIAN-CVE-2026-45933
Debian:14linux6.18.14-1DEBIAN-CVE-2026-45933
Ubuntu:25.10linuxno fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2026-45933
Ubuntu:25.10linux-awsno fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-aws-6.14no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-aws-6.17no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2026-45933
Ubuntu:25.10linux-azureno fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-azure-6.11no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-azure-6.14no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-azure-6.17no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2026-45933
Ubuntu:25.10linux-azure-fdeno fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-azure-fde-6.14no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-azure-nvidia-6.14no fix listedUBUNTU-CVE-2026-45933
Ubuntu:25.10linux-gcpno fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-gcp-6.11no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-gcp-6.14no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-gcp-6.17no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-hwe-6.11no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-hwe-6.14no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-hwe-6.17no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-intel-iot-realtimeno fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-lowlatency-hwe-6.11no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-nvidia-6.11no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-nvidia-6.17no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-oem-6.11no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-oem-6.14no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-oem-6.17no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-oem-6.8no fix listedUBUNTU-CVE-2026-45933
Ubuntu:25.10linux-oracleno fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-oracle-6.14no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-oracle-6.17no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2026-45933
Ubuntu:25.10linux-raspino fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-raspi-realtimeno fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-45933
Ubuntu:25.10linux-realtimeno fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-45933
Ubuntu:25.10linux-riscvno fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-riscv-6.14no fix listedUBUNTU-CVE-2026-45933
Ubuntu:24.04:LTSlinux-riscv-6.17no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2026-45933
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2026-45933

Affected products (as reported)

VendorProductVersions
Linux Linux 98d7ca374ba4b39e7535613d40e159f09ca14da2 – before 58059335e46537de682db84984f7716c813208c498d7ca374ba4b39e7535613d40e159f09ca14da2 – before 92a8cb1806adefb263cf096eab6705705cf7eee198d7ca374ba4b39e7535613d40e159f09ca14da2 – before 65d114b5270b62aefb820ecd6c3b7caeea8f895d98d7ca374ba4b39e7535613d40e159f09ca14da2 – before af9e89d8dd39530c8bd14c33ddf6b502df1071b6
Linux Linux 6.11

Weakness: CWE-682 · Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

References