Vulnerability · Published Sep 17, 2026 · Assigned by Linux

CVE-2026-90312bpf: Check load-acquire src ptr type before the load

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 5% 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 94.6% of all CVEs
Exploited in the wildNo reportsnot in CISA KEV
Attack toolingNoneno public tooling known

Official description

In the Linux kernel, the following vulnerability has been resolved: bpf: Check load-acquire src ptr type before the load check_atomic_load() calls check_load_mem() before atomic_ptr_type_ok(). For a load-acquire that fetches into its own source register (dst_reg == src_reg), check_load_mem() overwrites src_reg's type with the type of the loaded value, so the subsequent atomic_ptr_type_ok() no longer sees the source pointer and fails to reject the disallowed types (ctx, pkt, flow_keys, sock). Since bpf_convert_ctx_accesses() does not rewrite atomic loads, the raw access to the underlying kernel object is left in place. The destination type is taken from the ctx access itself, so a load-acquire of the sk field of struct __sk_buff for example leaves the register typed as PTR_TO_SOCK_COMMON_OR_NULL, which type_is_sk_pointer() does not match either, while it actually holds unconverted struct sk_buff bytes. Once the NULL check has passed this is a type confusion, not just a leak of kernel data. Validate src_reg with check_reg_arg() and check the source pointer type with atomic_ptr_type_ok() before the load again, mirroring check_atomic_rmw(). Out-of-range register numbers are already rejected earlier by check_and_resolve_insns() (commit 503d21ef8eac ("bpf: Do register range validation early")), and the only exemption there, is_stack_arg_ldx(), requires BPF_LDX | BPF_MEM | BPF_DW and thus never matches a BPF_ATOMIC insn. atomic_ptr_type_ok() can therefore not dereference register state out of bounds, that is, the out-of-bounds read addressed by the Fixes commit below does not reappear (as proven also via selftest).

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:14linux7.2.6-1DEBIAN-CVE-2026-90312
Ubuntu:26.04:LTSlinux7.0.0-42.42UBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2026-90312
Ubuntu:26.04:LTSlinux-aws7.0.0-1016.17UBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-aws-6.14no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-aws-6.17no fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-aws-7.0no fix listedUBUNTU-CVE-2026-90312
Ubuntu:26.04:LTSlinux-azureno fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-azure-6.11no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-azure-6.14no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-azure-6.17no fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-azure-7.0no fix listedUBUNTU-CVE-2026-90312
Ubuntu:26.04:LTSlinux-azure-fdeno fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-azure-fde-6.14no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-azure-fde-6.17no fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-azure-fde-7.0no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-azure-nvidia-6.14no fix listedUBUNTU-CVE-2026-90312
Ubuntu:26.04:LTSlinux-gcp7.0.0-1016.18UBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-gcp-6.11no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-gcp-6.14no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-gcp-6.17no fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-gcp-7.0no fix listedUBUNTU-CVE-2026-90312
Ubuntu:26.04:LTSlinux-gkeno fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-hwe-6.11no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-hwe-6.14no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-hwe-6.17no fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-hwe-7.07.0.0-42.42~24.04.1UBUNTU-CVE-2026-90312
Ubuntu:26.04:LTSlinux-ibm7.0.0-1017.17UBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-intel-iot-realtimeno fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-lowlatency-hwe-6.11no fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2026-90312
Ubuntu:26.04:LTSlinux-nvidiano fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-nvidia-6.11no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-nvidia-6.17no fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-nvidia-7.0no fix listedUBUNTU-CVE-2026-90312
Ubuntu:26.04:LTSlinux-nvidia-bosno fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-oem-6.11no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-oem-6.14no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-oem-6.17no fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-oem-6.8no fix listedUBUNTU-CVE-2026-90312
Ubuntu:26.04:LTSlinux-oem-7.07.0.0-1017.17UBUNTU-CVE-2026-90312
Ubuntu:26.04:LTSlinux-oracle7.0.0-1015.16UBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-oracle-6.14no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-oracle-6.17no fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-oracle-7.0no fix listedUBUNTU-CVE-2026-90312
Ubuntu:26.04:LTSlinux-raspino fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-raspi-realtimeno fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-90312
Ubuntu:26.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-90312
Ubuntu:26.04:LTSlinux-riscv7.0.0-42.42.1UBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-riscv-6.14no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-riscv-6.17no fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2026-90312
Ubuntu:24.04:LTSlinux-riscv-7.07.0.0-42.42.1~24.04.1UBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2026-90312
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2026-90312

Affected products (as reported)

VendorProductVersions
Linux Linux c03bb2fa327e4c25d6c5360a8803a4b1cdc2d0b9 – before 6ee7b00888498cf387dd30729e18a05328b94709c03bb2fa327e4c25d6c5360a8803a4b1cdc2d0b9 – before 422a416041172af1ac610736d5f556d22b31b115c03bb2fa327e4c25d6c5360a8803a4b1cdc2d0b9 – before b87803391baa7e0bef60549d8841f12e549ad057
Linux Linux 6.15

References