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".
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 Ami 2 | — | Upgrade kernel-headersUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-toolsUpgrade bpftool-debuginfoUpgrade python-perfUpgrade python-perf-debuginfoUpgrade kernelUpgrade perf-debuginfoUpgrade perfUpgrade kernel-tools-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-tools-develUpgrade kernel-debuginfoUpgrade kernel-livepatch-5.15.148-97.158Upgrade kernel-develUpgrade bpftool | Jul 9, 2024 | Feb 22, 2024 |
| Amazon_linux_2023 | — | Upgrade kernel-toolsUpgrade python3-perfUpgrade kernel-debuginfo-common-aarch64Upgrade perfUpgrade perf-debuginfoUpgrade kernel-tools-develUpgrade kernel-livepatch-6.1.75-99.163Upgrade kernel-libbpfUpgrade kernel-tools-debuginfoUpgrade kernel-develUpgrade kernel-modules-extra-commonUpgrade bpftool-debuginfoUpgrade bpftoolUpgrade kernel-libbpf-develUpgrade kernel-debuginfoUpgrade kernel-headersUpgrade python3-perf-debuginfoUpgrade kernel-libbpf-staticUpgrade kernelUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-modules-extra | Feb 17, 2025 | Feb 22, 2024 |
| Debian | — | Upgrade linux | Jul 30, 2024 | Feb 22, 2024 |
| Huawei Euleros 2_0_sp10 | — | Upgrade kernel-toolsUpgrade python3-perfUpgrade kernel-tools-libsUpgrade kernel-abi-stablelistsUpgrade kernel | May 13, 2024 | Feb 22, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-tools-libsUpgrade kernel-toolsUpgrade kernel-abi-stablelistsUpgrade kernelUpgrade python3-perfUpgrade bpftool | Jun 3, 2024 | Feb 22, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernelUpgrade kernel-tools-libsUpgrade kernel-abi-stablelistsUpgrade bpftoolUpgrade kernel-toolsUpgrade python3-perf | Jul 1, 2024 | Feb 22, 2024 |
| Huawei Euleros 2_0_sp9 | — | Upgrade kernelUpgrade python3-perfUpgrade kernel-tools-libsUpgrade kernel-tools | Jul 17, 2024 | Feb 22, 2024 |
| Redhat_linux | — | Upgrade kernelNo solution existsUpgrade kernel-rt | Dec 5, 2024 | Feb 22, 2024 |
| Suse | — | Upgrade kselftests-kmp-64kbUpgrade kernel-azure-develUpgrade kernel-default-extraUpgrade kernel-source-vanillaUpgrade kernel-source-azureUpgrade kernel-symsUpgrade kernel-preemptUpgrade dtb-appleUpgrade dtb-hisiliconUpgrade kernel-64kb-optionalUpgrade kernel-kvmsmall-develUpgrade kernel-kvmsmall-vdsoUpgrade dlm-kmp-64kbUpgrade dtb-allwinnerUpgrade kernel-rt-optionalUpgrade cluster-md-kmp-rtUpgrade kernel-default-optionalUpgrade kernel-syms-azureUpgrade kernel-rt-vdsoUpgrade ocfs2-kmp-64kbUpgrade cluster-md-kmp-azureUpgrade dtb-xilinxUpgrade gfs2-kmp-rtUpgrade kernel-zfcpdumpUpgrade dtb-marvellUpgrade dtb-qcomUpgrade kernel-azure-livepatch-develUpgrade kernel-azure-extraUpgrade dtb-caviumUpgrade kernel-64kbUpgrade kernel-rt_debug-develUpgrade kernel-sourceUpgrade kernel-source-rtUpgrade kernel-64kb-livepatch-develUpgrade kernel-develUpgrade kernel-azureUpgrade dtb-broadcomUpgrade kernel-docs-htmlUpgrade reiserfs-kmp-64kbUpgrade dtb-freescaleUpgrade kernel-kvmsmall-livepatch-develUpgrade ocfs2-kmp-defaultUpgrade dtb-lgUpgrade kernel-kvmsmallUpgrade dtb-alteraUpgrade kernel-default-develUpgrade gfs2-kmp-azureUpgrade dtb-amazonUpgrade ocfs2-kmp-rtUpgrade kernel-obs-qaUpgrade kernel-preempt-develUpgrade kernel-default-livepatchUpgrade kernel-default-vdsoUpgrade kernel-devel-azureUpgrade kselftests-kmp-azureUpgrade gfs2-kmp-64kbUpgrade kernel-rtUpgrade dtb-exynosUpgrade kernel-azure-optionalUpgrade kernel-debugUpgrade kernel-rt-livepatchUpgrade kernel-rt-extraUpgrade kernel-debug-develUpgrade kernel-azure-vdsoUpgrade dtb-mediatekUpgrade kernel-rt_debug-vdsoUpgrade kernel-rt_debugUpgrade reiserfs-kmp-rtUpgrade kernel-macrosUpgrade kernel-default-livepatch-develUpgrade dtb-amlogicUpgrade kernel-rt-livepatch-develUpgrade dtb-renesasUpgrade kernel-defaultUpgrade dlm-kmp-defaultUpgrade reiserfs-kmp-defaultUpgrade ocfs2-kmp-azureUpgrade kernel-syms-rtUpgrade kernel-rt-develUpgrade kernel-debug-vdsoUpgrade kernel-default-baseUpgrade cluster-md-kmp-64kbUpgrade kselftests-kmp-defaultUpgrade kernel-docsUpgrade kernel-default-base-rebuildUpgrade gfs2-kmp-defaultUpgrade dtb-sprdUpgrade dtb-apmUpgrade kselftests-kmp-rtUpgrade kernel-obs-buildUpgrade kernel-devel-rtUpgrade kernel-64kb-extraUpgrade kernel-64kb-develUpgrade dlm-kmp-azureUpgrade cluster-md-kmp-defaultUpgrade kernel-rt_debug-livepatch-develUpgrade dtb-rockchipUpgrade dtb-armUpgrade dtb-amdUpgrade dlm-kmp-rtUpgrade kernel-debug-livepatch-develUpgrade dtb-nvidiaUpgrade dtb-socionextUpgrade reiserfs-kmp-azure | Mar 13, 2024 | Feb 22, 2024 |
| Ubuntu | — | Upgrade linux-image-intelUpgrade linux-image-generic-hwe-18.04Upgrade linux-image-5.15.0-1054-kvmUpgrade linux-image-5.15.0-102-lowlatencyUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-laptop-23.10Upgrade linux-image-5.15.0-102-lowlatency-64kUpgrade linux-image-6.5.0-1014-laptopUpgrade linux-image-oem-22.04Upgrade linux-image-5.4.0-177-lowlatencyUpgrade linux-image-6.5.0-1019-azure-fdeUpgrade linux-image-5.15.0-102-generic-64kUpgrade linux-image-6.5.0-1019-azureUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-nvidiaUpgrade linux-image-gcpUpgrade linux-image-5.15.0-1048-nvidia-lowlatencyUpgrade linux-image-raspi2Upgrade linux-image-gkeopUpgrade linux-image-5.15.0-1052-intel-iotgUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-lowlatencyUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-azureUpgrade linux-image-oem-20.04dUpgrade linux-image-5.4.0-1123-awsUpgrade linux-image-generic-64kUpgrade linux-image-oem-20.04cUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-gkeop-5.15Upgrade linux-image-oem-22.04bUpgrade linux-image-genericUpgrade linux-image-6.5.0-1021-oracle-64kUpgrade linux-image-5.15.0-1055-gcpUpgrade linux-image-virtualUpgrade linux-image-5.15.0-1040-gkeopUpgrade linux-image-5.15.0-102-genericUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-gkeUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-gcp-lts-20.04Upgrade linux-image-oem-osp1Upgrade linux-image-oemUpgrade linux-image-5.4.0-1042-xilinx-zynqmpUpgrade linux-image-5.4.0-1090-gkeopUpgrade linux-image-oracle-64kUpgrade linux-image-5.15.0-1050-ibmUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-azure-lts-22.04Upgrade linux-image-5.4.0-1035-iotUpgrade linux-image-5.4.0-177-generic-lpaeUpgrade linux-image-oem-22.04cUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-5.15.0-1050-raspiUpgrade linux-image-6.5.0-1012-starfiveUpgrade linux-image-oem-20.04Upgrade linux-image-oem-22.04aUpgrade linux-image-6.5.0-28-lowlatencyUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-gke-5.15Upgrade linux-image-oem-20.04bUpgrade linux-image-gkeop-5.4Upgrade linux-image-5.15.0-1054-gkeUpgrade linux-image-5.4.0-1070-ibmUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-intel-iotgUpgrade linux-image-lowlatency-64kUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-6.5.0-28-lowlatency-64kUpgrade linux-image-azure-fdeUpgrade linux-image-5.4.0-1107-raspiUpgrade linux-image-5.15.0-1055-oracleUpgrade linux-image-nvidia-6.5Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-aws-lts-20.04Upgrade linux-image-5.4.0-1111-kvmUpgrade linux-image-6.1.0-1035-oemUpgrade linux-image-kvmUpgrade linux-image-raspi-nolpaeUpgrade linux-image-5.15.0-1060-azure-fdeUpgrade linux-image-6.5.0-1018-awsUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-5.15.0-1057-awsUpgrade linux-image-bluefieldUpgrade linux-image-5.15.0-102-generic-lpaeUpgrade linux-image-5.4.0-1127-gcpUpgrade linux-image-oem-22.04dUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-nvidia-64k-6.5Upgrade linux-image-6.5.0-1015-raspiUpgrade linux-image-6.5.0-1021-oracleUpgrade linux-image-5.4.0-1128-azureUpgrade linux-image-5.4.0-177-genericUpgrade linux-image-generic-lpaeUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-awsUpgrade linux-image-oracleUpgrade linux-image-6.5.0-1018-gcpUpgrade linux-image-5.4.0-1122-oracleUpgrade linux-image-aws-lts-22.04Upgrade linux-image-virtual-hwe-18.04Upgrade linux-image-5.15.0-1048-nvidiaUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-6.5.0-1015-nvidiaUpgrade linux-image-ibm-lts-20.04Upgrade linux-image-5.4.0-1083-bluefieldUpgrade linux-image-ibmUpgrade linux-image-5.15.0-1060-azureUpgrade linux-image-6.5.0-1020-oemUpgrade linux-image-raspiUpgrade linux-image-azure-lts-20.04Upgrade linux-image-6.5.0-28-genericUpgrade linux-image-starfiveUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-azure-cvmUpgrade linux-image-6.5.0-1015-nvidia-64kUpgrade linux-image-6.5.0-28-generic-64k | 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 |
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