In the Linux kernel, the following vulnerability has been resolved:
bpf: Reject variable offset alu on PTR_TO_FLOW_KEYS
For PTR_TO_FLOW_KEYS, check_flow_keys_access() only uses fixed off for validation. However, variable offset ptr alu is not prohibited for this ptr kind. So the variable offset is not checked.
The following prog is accepted:
func#0 @0 0: R1=ctx() R10=fp0 0: (bf) r6 = r1 ; R1=ctx() R6_w=ctx() 1: (79) r7 = *(u64 *)(r6 +144) ; R6_w=ctx() R7_w=flow_keys() 2: (b7) r8 = 1024 ; R8_w=1024 3: (37) r8 /= 1 ; R8_w=scalar() 4: (57) r8 &= 1024 ; R8_w=scalar(smin=smin32=0, smax=umax=smax32=umax32=1024,var_off=(0x0; 0x400)) 5: (0f) r7 += r8 mark_precise: frame0: last_idx 5 first_idx 0 subseq_idx -1 mark_precise: frame0: regs=r8 stack= before 4: (57) r8 &= 1024 mark_precise: frame0: regs=r8 stack= before 3: (37) r8 /= 1 mark_precise: frame0: regs=r8 stack= before 2: (b7) r8 = 1024 6: R7_w=flow_keys(smin=smin32=0,smax=umax=smax32=umax32=1024,var_off =(0x0; 0x400)) R8_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=1024, var_off=(0x0; 0x400)) 6: (79) r0 = *(u64 *)(r7 +0) ; R0_w=scalar() 7: (95) exit
This prog loads flow_keys to r7, and adds the variable offset r8 to r7, and finally causes out-of-bounds access:
BUG: unable to handle page fault for address: ffffc90014c80038 [...] Call Trace: <TASK> bpf_dispatcher_nop_func include/linux/bpf.h:1231 [inline] __bpf_prog_run include/linux/filter.h:651 [inline] bpf_prog_run include/linux/filter.h:658 [inline] bpf_prog_run_pin_on_cpu include/linux/filter.h:675 [inline] bpf_flow_dissect+0x15f/0x350 net/core/flow_dissector.c:991 bpf_prog_test_run_flow_dissector+0x39d/0x620 net/bpf/test_run.c:1359 bpf_prog_test_run kernel/bpf/syscall.c:4107 [inline] __sys_bpf+0xf8f/0x4560 kernel/bpf/syscall.c:5475 __do_sys_bpf kernel/bpf/syscall.c:5561 [inline] __se_sys_bpf kernel/bpf/syscall.c:5559 [inline] __x64_sys_bpf+0x73/0xb0 kernel/bpf/syscall.c:5559 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0x3f/0x110 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x63/0x6b
Fix this by rejecting ptr alu with variable offset on flow_keys. Applying the patch rejects the program with "R7 pointer arithmetic on flow_keys prohibited".
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon Linux Ami 2 | — | Upgrade kernel-livepatch-5.15.148-97.158Upgrade perfUpgrade kernel-develUpgrade kernel-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade bpftoolUpgrade kernel-tools-debuginfoUpgrade kernel-tools-develUpgrade kernel-toolsUpgrade kernel-debuginfo-common-x86_64Upgrade perf-debuginfoUpgrade kernelUpgrade python-perfUpgrade bpftool-debuginfoUpgrade python-perf-debuginfoUpgrade kernel-headers | Jul 9, 2024 | Feb 22, 2024 |
| Amazon_linux_2023 | — | Upgrade kernel-libbpf-staticUpgrade kernel-headersUpgrade bpftoolUpgrade bpftool-debuginfoUpgrade kernel-debuginfoUpgrade kernel-libbpf-develUpgrade kernel-debuginfo-common-x86_64Upgrade kernelUpgrade python3-perf-debuginfoUpgrade kernel-modules-extraUpgrade kernel-tools-develUpgrade kernel-livepatch-6.1.75-99.163Upgrade kernel-modules-extra-commonUpgrade kernel-libbpfUpgrade kernel-develUpgrade perf-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-toolsUpgrade python3-perfUpgrade perfUpgrade kernel-tools-debuginfo | Feb 17, 2025 | Feb 22, 2024 |
| Debian | — | Upgrade linux | Jul 30, 2024 | Feb 22, 2024 |
| Huawei Euleros 2_0_sp10 | — | Upgrade kernelUpgrade kernel-tools-libsUpgrade kernel-abi-stablelistsUpgrade kernel-toolsUpgrade python3-perf | May 13, 2024 | Feb 22, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-abi-stablelistsUpgrade kernel-toolsUpgrade kernel-tools-libsUpgrade kernelUpgrade bpftoolUpgrade python3-perf | Jun 3, 2024 | Feb 22, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade bpftoolUpgrade python3-perfUpgrade kernel-toolsUpgrade kernel-tools-libsUpgrade kernelUpgrade kernel-abi-stablelists | Jul 1, 2024 | Feb 22, 2024 |
| Huawei Euleros 2_0_sp9 | — | Upgrade kernel-toolsUpgrade kernel-tools-libsUpgrade kernelUpgrade python3-perf | Jul 17, 2024 | Feb 22, 2024 |
| Redhat_linux | — | Upgrade kernelNo solution existsUpgrade kernel-rt | Dec 5, 2024 | Feb 22, 2024 |
| Suse | — | Upgrade dtb-lgUpgrade gfs2-kmp-64kbUpgrade kernel-preempt-develUpgrade dtb-freescaleUpgrade kernel-default-develUpgrade kernel-rt-optionalUpgrade cluster-md-kmp-rtUpgrade kernel-rt-livepatchUpgrade kernel-devel-azureUpgrade dtb-amazonUpgrade gfs2-kmp-azureUpgrade kselftests-kmp-azureUpgrade kernel-64kb-optionalUpgrade dtb-appleUpgrade kernel-kvmsmall-develUpgrade dlm-kmp-64kbUpgrade kernel-default-vdsoUpgrade kernel-obs-qaUpgrade kernel-debugUpgrade kernel-kvmsmall-vdsoUpgrade kernel-rt-vdsoUpgrade kernel-syms-azureUpgrade dtb-xilinxUpgrade ocfs2-kmp-64kbUpgrade kernel-default-livepatchUpgrade dtb-hisiliconUpgrade reiserfs-kmp-64kbUpgrade dtb-alteraUpgrade kernel-zfcpdumpUpgrade kernel-preemptUpgrade gfs2-kmp-rtUpgrade kernel-azure-optionalUpgrade cluster-md-kmp-azureUpgrade dtb-qcomUpgrade dtb-marvellUpgrade kernel-source-azureUpgrade kernel-source-rtUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-sourceUpgrade dtb-broadcomUpgrade ocfs2-kmp-rtUpgrade dtb-caviumUpgrade kernel-rt_debug-develUpgrade kernel-azureUpgrade kernel-azure-livepatch-develUpgrade kernel-default-optionalUpgrade kernel-64kb-livepatch-develUpgrade kernel-azure-extraUpgrade kernel-64kbUpgrade kernel-rtUpgrade kernel-develUpgrade dtb-allwinnerUpgrade kselftests-kmp-64kbUpgrade kernel-source-vanillaUpgrade dtb-exynosUpgrade kernel-default-extraUpgrade kernel-symsUpgrade kernel-azure-develUpgrade ocfs2-kmp-defaultUpgrade kernel-docs-htmlUpgrade kernel-kvmsmallUpgrade kernel-default-livepatch-develUpgrade dtb-amlogicUpgrade kernel-rt-extraUpgrade dlm-kmp-defaultUpgrade kernel-defaultUpgrade dtb-renesasUpgrade kernel-rt-livepatch-develUpgrade kernel-macrosUpgrade kselftests-kmp-defaultUpgrade kernel-azure-vdsoUpgrade dtb-mediatekUpgrade dlm-kmp-rtUpgrade cluster-md-kmp-64kbUpgrade kernel-rt_debug-livepatch-develUpgrade dtb-armUpgrade cluster-md-kmp-defaultUpgrade dtb-rockchipUpgrade kernel-default-baseUpgrade kernel-rt_debugUpgrade dtb-socionextUpgrade kernel-rt_debug-vdsoUpgrade dlm-kmp-azureUpgrade kernel-syms-rtUpgrade kernel-debug-livepatch-develUpgrade kernel-64kb-develUpgrade kernel-debug-vdsoUpgrade kernel-devel-rtUpgrade reiserfs-kmp-defaultUpgrade ocfs2-kmp-azureUpgrade kernel-rt-develUpgrade dtb-amdUpgrade dtb-nvidiaUpgrade kernel-64kb-extraUpgrade kselftests-kmp-rtUpgrade gfs2-kmp-defaultUpgrade dtb-sprdUpgrade kernel-docsUpgrade dtb-apmUpgrade kernel-obs-buildUpgrade kernel-default-base-rebuildUpgrade reiserfs-kmp-azureUpgrade kernel-debug-develUpgrade reiserfs-kmp-rt | Mar 13, 2024 | Feb 22, 2024 |
| Ubuntu | — | Upgrade linux-image-azureUpgrade linux-image-oem-20.04dUpgrade linux-image-azure-lts-22.04Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-lowlatencyUpgrade linux-image-virtualUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-oem-20.04bUpgrade linux-image-5.15.0-1050-raspiUpgrade linux-image-5.15.0-1054-gkeUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-gkeop-5.4Upgrade linux-image-5.15.0-1040-gkeopUpgrade linux-image-5.4.0-1070-ibmUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-6.5.0-28-lowlatencyUpgrade linux-image-oem-20.04cUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-5.4.0-1090-gkeopUpgrade linux-image-gke-5.15Upgrade linux-image-genericUpgrade linux-image-generic-64kUpgrade linux-image-5.4.0-1042-xilinx-zynqmpUpgrade linux-image-oem-22.04aUpgrade linux-image-5.4.0-177-lowlatencyUpgrade linux-image-6.5.0-1019-azure-fdeUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-oracle-64kUpgrade linux-image-5.15.0-102-generic-64kUpgrade linux-image-oem-22.04Upgrade linux-image-5.15.0-102-lowlatency-64kUpgrade linux-image-lowlatency-64kUpgrade linux-image-laptop-23.10Upgrade linux-image-oemUpgrade linux-image-5.15.0-1048-nvidia-lowlatencyUpgrade linux-image-oem-22.04cUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-oem-20.04Upgrade linux-image-gkeop-5.15Upgrade linux-image-oem-22.04bUpgrade linux-image-5.4.0-177-generic-lpaeUpgrade linux-image-5.4.0-1123-awsUpgrade linux-image-5.15.0-1054-kvmUpgrade linux-image-5.15.0-102-genericUpgrade linux-image-nvidiaUpgrade linux-image-5.4.0-1035-iotUpgrade linux-image-gcpUpgrade linux-image-raspi2Upgrade linux-image-6.5.0-1019-azureUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-5.15.0-1050-ibmUpgrade linux-image-6.5.0-1012-starfiveUpgrade linux-image-intelUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-5.15.0-102-lowlatencyUpgrade linux-image-gkeUpgrade linux-image-oem-osp1Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-intel-iotgUpgrade linux-image-5.15.0-1055-gcpUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-6.5.0-1021-oracle-64kUpgrade linux-image-gkeopUpgrade linux-image-5.15.0-1052-intel-iotgUpgrade linux-image-6.5.0-1014-laptopUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-generic-hwe-18.04Upgrade linux-image-gcp-lts-22.04Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-5.15.0-1057-awsUpgrade linux-image-5.4.0-1127-gcpUpgrade linux-image-5.4.0-1107-raspiUpgrade linux-image-6.5.0-28-lowlatency-64kUpgrade linux-image-5.4.0-177-genericUpgrade linux-image-5.4.0-1122-oracleUpgrade linux-image-ibmUpgrade linux-image-raspiUpgrade linux-image-5.15.0-1060-azureUpgrade linux-image-6.5.0-1020-oemUpgrade linux-image-5.15.0-1048-nvidiaUpgrade linux-image-raspi-nolpaeUpgrade linux-image-oracleUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-awsUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-kvmUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-5.15.0-1060-azure-fdeUpgrade linux-image-nvidia-64k-6.5Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-azure-fdeUpgrade linux-image-aws-lts-22.04Upgrade linux-image-5.15.0-102-generic-lpaeUpgrade linux-image-6.1.0-1035-oemUpgrade linux-image-oem-22.04dUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-6.5.0-1018-awsUpgrade linux-image-6.5.0-1015-nvidiaUpgrade linux-image-bluefieldUpgrade linux-image-5.4.0-1111-kvmUpgrade linux-image-generic-lpaeUpgrade linux-image-6.5.0-1015-raspiUpgrade linux-image-6.5.0-1018-gcpUpgrade linux-image-5.4.0-1128-azureUpgrade linux-image-6.5.0-1021-oracleUpgrade linux-image-5.15.0-1055-oracleUpgrade linux-image-6.5.0-28-genericUpgrade linux-image-6.5.0-28-generic-64kUpgrade linux-image-6.5.0-1015-nvidia-64kUpgrade linux-image-aws-lts-20.04Upgrade linux-image-azure-lts-20.04Upgrade linux-image-ibm-lts-20.04Upgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-5.4.0-1083-bluefieldUpgrade linux-image-starfiveUpgrade linux-image-nvidia-6.5Upgrade linux-image-azure-cvm | Mar 12, 2024 | Feb 22, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jan 20, 2025 | Feb 22, 2024 |
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