In the Linux kernel, the following vulnerability has been resolved:
bpf: Enforce expected_attach_type for tailcall compatibility
Yinhao et al. recently reported:
Our fuzzer tool discovered an uninitialized pointer issue in the bpf_prog_test_run_xdp() function within the Linux kernel's BPF subsystem. This leads to a NULL pointer dereference when a BPF program attempts to deference the txq member of struct xdp_buff object.
The test initializes two programs of BPF_PROG_TYPE_XDP: progA acts as the entry point for bpf_prog_test_run_xdp() and its expected_attach_type can neither be of be BPF_XDP_DEVMAP nor BPF_XDP_CPUMAP. progA calls into a slot of a tailcall map it owns. progB's expected_attach_type must be BPF_XDP_DEVMAP to pass xdp_is_valid_access() validation. The program returns struct xdp_md's egress_ifindex, and the latter is only allowed to be accessed under mentioned expected_attach_type. progB is then inserted into the tailcall which progA calls.
The underlying issue goes beyond XDP though. Another example are programs of type BPF_PROG_TYPE_CGROUP_SOCK_ADDR. sock_addr_is_valid_access() as well as sock_addr_func_proto() have different logic depending on the programs' expected_attach_type. Similarly, a program attached to BPF_CGROUP_INET4_GETPEERNAME should not be allowed doing a tailcall into a program which calls bpf_bind() out of BPF which is only enabled for BPF_CGROUP_INET4_CONNECT.
In short, specifying expected_attach_type allows to open up additional functionality or restrictions beyond what the basic bpf_prog_type enables. The use of tailcalls must not violate these constraints. Fix it by enforcing expected_attach_type in __bpf_prog_map_compatible().
Note that we only enforce this for tailcall maps, but not for BPF devmaps or cpumaps: There, the programs are invoked through dev_map_bpf_prog_run*() and cpu_map_bpf_prog_run*() which set up a new environment / context and therefore these situations are not prone to this issue.
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade kernel-headersUpgrade bpftool6.12Upgrade kernel-modules-extra-commonUpgrade kernel6.12-modules-extraUpgrade kernel-libbpf-develUpgrade perf-debuginfoUpgrade kernel6.12-modules-extra-commonUpgrade kernel-debuginfo-common-x86_64Upgrade kernel6.12-libbpfUpgrade kernel6.12-libbpf-debuginfoUpgrade perf6.12Upgrade bpftool6.12-debuginfoUpgrade kernelUpgrade python3-perf6.12-debuginfoUpgrade kernel6.12Upgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel6.12-libbpf-staticUpgrade kernel-livepatch-6.12.53-69.119Upgrade kernel6.12-debuginfoUpgrade kernel6.12-libbpf-develUpgrade kernel-toolsUpgrade kernel-debuginfo-common-aarch64Upgrade python3-perf6.12Upgrade python3-perf-debuginfoUpgrade python3-perfUpgrade kernel6.12-debuginfo-common-x86_64Upgrade kernel-tools-debuginfoUpgrade kernel-tools-develUpgrade kernel-livepatch-6.1.156-177.286Upgrade bpftoolUpgrade kernel-libbpf-debuginfoUpgrade kernel-libbpfUpgrade kernel6.12-develUpgrade perf6.12-debuginfoUpgrade perfUpgrade kernel6.12-toolsUpgrade kernel-modules-extraUpgrade kernel6.12-tools-develUpgrade kernel-libbpf-staticUpgrade kernel6.12-tools-debuginfoUpgrade kernel-develUpgrade bpftool-debuginfoUpgrade kernel6.12-headersUpgrade kernel-debuginfo | Dec 9, 2025 | Nov 12, 2025 |
| Debian | — | Upgrade linuxUpgrade linux-6.1 | Nov 13, 2025 | Nov 13, 2025 |
| Huawei Euleros 2_0_sp12 | — | Upgrade python3-perfUpgrade kernel-toolsUpgrade kernel-tools-libsUpgrade bpftoolUpgrade kernel-abi-stablelistsUpgrade kernel | Mar 17, 2026 | Mar 16, 2026 |
| Huawei Euleros 2_0_sp13 | — | Upgrade python3-perfUpgrade kernel-toolsUpgrade bpftoolUpgrade kernel-abi-stablelistsUpgrade kernelUpgrade kernel-tools-libs | Feb 3, 2026 | Feb 2, 2026 |
| Redhat_linux | — | No solution exists | Jul 17, 2026 | Nov 12, 2025 |
| Ubuntu | — | Upgrade linux-image-gkeopUpgrade linux-image-nvidiaUpgrade linux-image-generic-64kUpgrade linux-image-6.8.0-1048-gke-64kUpgrade linux-image-6.17.0-1006-realtimeUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-oracle-64kUpgrade linux-image-raspi-6.17Upgrade linux-image-raspi-realtime-6.8Upgrade linux-image-nvidia-64kUpgrade linux-image-6.17.0-1007-oracle-64kUpgrade linux-image-aws-6.17Upgrade linux-image-6.8.0-1050-aws-fipsUpgrade linux-image-gcpUpgrade linux-image-raspiUpgrade linux-image-xilinxUpgrade linux-image-ibm-6.8Upgrade linux-image-aws-lts-24.04Upgrade linux-image-azureUpgrade linux-image-aws-fips-6.8Upgrade linux-image-6.8.0-1049-nvidia-lowlatency-64kUpgrade linux-image-azure-fips-6.8Upgrade linux-image-realtime-6.17Upgrade linux-image-6.17.0-1007-oracleUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-106-genericUpgrade linux-image-azure-6.8Upgrade linux-image-gcp-64kUpgrade linux-image-6.8.0-1052-azure-fipsUpgrade linux-image-6.8.0-1052-gcp-64kUpgrade linux-image-fips-6.8Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-6.8.0-2040-raspi-realtimeUpgrade linux-image-ibm-classicUpgrade linux-image-aws-6.8Upgrade linux-image-azure-lts-24.04Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-virtual-6.17Upgrade linux-image-6.8.0-1047-oracleUpgrade linux-image-raspi-6.8Upgrade linux-image-azure-6.17Upgrade linux-image-gke-6.8Upgrade linux-image-gke-64k-6.8Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-aws-64kUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.8.0-106-lowlatency-64kUpgrade linux-image-6.17.0-1008-azureUpgrade linux-image-generic-6.8Upgrade linux-image-6.8.0-1049-nvidia-lowlatencyUpgrade linux-image-xilinx-6.8Upgrade linux-image-genericUpgrade linux-image-6.8.0-1050-awsUpgrade linux-image-6.8.0-106-generic-64kUpgrade linux-image-gkeUpgrade linux-image-raspi-realtimeUpgrade linux-image-6.8.0-106-fipsUpgrade linux-image-kvmUpgrade linux-image-oem-22.04cUpgrade linux-image-aws-64k-6.8Upgrade linux-image-intel-iotgUpgrade linux-image-oracle-6.8Upgrade linux-image-gcp-fips-6.8Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-realtime-6.8.1Upgrade linux-image-virtualUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-oem-22.04dUpgrade linux-image-6.17.0-1007-awsUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-oracleUpgrade linux-image-gkeop-6.8Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-6.8.0-1049-nvidia-64kUpgrade linux-image-6.17.0-1007-aws-64kUpgrade linux-image-virtual-6.8Upgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-ibmUpgrade linux-image-awsUpgrade linux-image-6.8.0-1050-raspiUpgrade linux-image-lowlatency-64kUpgrade linux-image-6.17.0-14-genericUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-6.8.0-1049-nvidiaUpgrade linux-image-6.8.0-1050-aws-64kUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-oem-22.04Upgrade linux-image-fipsUpgrade linux-image-6.8.0-1049-ibmUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-gcp-64k-6.17Upgrade linux-image-gcp-6.8Upgrade linux-image-aws-64k-6.17Upgrade linux-image-6.17.0-14-generic-64kUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-aws-fipsUpgrade linux-image-6.8.0-1052-gcp-fipsUpgrade linux-image-6.8.0-1035-gkeopUpgrade linux-image-oracle-64k-6.17Upgrade linux-image-6.17.0-1011-oemUpgrade linux-image-generic-6.17Upgrade linux-image-realtimeUpgrade linux-image-lowlatency-6.8Upgrade linux-image-6.17.0-1008-raspiUpgrade linux-image-oem-22.04aUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-gke-64kUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-oem-6.17Upgrade linux-image-generic-64k-6.8Upgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-1051-azureUpgrade linux-image-6.17.0-1007-gcp-64kUpgrade linux-image-generic-64k-6.17Upgrade linux-image-6.8.1-1045-realtimeUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-6.8.0-1029-xilinxUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-gcp-fipsUpgrade linux-image-6.8.0-1048-gkeUpgrade linux-image-6.17.0-1007-gcpUpgrade linux-image-6.8.0-1047-oracle-64kUpgrade linux-image-azure-fipsUpgrade linux-image-6.8.0-106-lowlatencyUpgrade linux-image-gcp-6.17Upgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-1052-gcpUpgrade linux-image-nvidia-6.8Upgrade linux-image-oracle-6.17 | Feb 13, 2026 | Feb 12, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | May 27, 2026 | Nov 12, 2025 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub