Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2024-26589— bpf: Reject variable offset alu on PTR_TO_FLOW_KEYS

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于不检查变量的偏移量。

CVSS 7.8 · High EPSS 0.24% · P14

Affected Version Matrix 12

VendorProduct Version RangeStatus
Linux Linux d58e468b1112dcd1d5193c0a89ff9f98b5a3e8b9< 29ffa63f21bcdcef3e36b03cccf9d0cd031f6ab0 affected
d58e468b1112dcd1d5193c0a89ff9f98b5a3e8b9< 4108b86e324da42f7ed425bd71632fd844300dc8 affected
d58e468b1112dcd1d5193c0a89ff9f98b5a3e8b9< e8d3872b617c21100c5ee4f64e513997a68c2e3d affected
d58e468b1112dcd1d5193c0a89ff9f98b5a3e8b9< 1b500d5d6cecf98dd6ca88bc9e7ae1783c83e6d3 affected
d58e468b1112dcd1d5193c0a89ff9f98b5a3e8b9< 22c7fa171a02d310e3a3f6ed46a698ca8a0060ed affected
4.20 affected
< 4.20 unaffected
5.15.148≤ 5.15.* unaffected
… +4 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2024-26589

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
bpf: Reject variable offset alu on PTR_TO_FLOW_KEYS
Source: CVE Program / CVE List V5
Vulnerability Description
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".
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于不检查变量的偏移量。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux d58e468b1112dcd1d5193c0a89ff9f98b5a3e8b9 ~ 29ffa63f21bcdcef3e36b03cccf9d0cd031f6ab0 -
Linux Linux 4.20 -

II. Public POCs for CVE-2024-26589

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-26589

请登录查看更多情报信息。

Other References for CVE-2024-26589 (5)

Same Patch Batch · Linux · 2024-02-22 · 17 CVEs total

CVE-2024-26592 9.8 CRITICAL ksmbd: fix UAF issue in ksmbd_tcp_new_connection()
CVE-2023-52447 7.8 HIGH bpf: Defer the free of inner map when necessary
CVE-2023-52444 7.8 HIGH f2fs: fix to avoid dirent corruption
CVE-2024-26586 7.8 HIGH mlxsw: spectrum_acl_tcam: Fix stack corruption
CVE-2024-26591 bpf: Fix re-attachment branch in bpf_tracing_prog_attach
CVE-2023-52452 bpf: Fix accesses to uninit stack slots
CVE-2023-52451 powerpc/pseries/memhp: Fix access beyond end of drmem array
CVE-2023-52450 perf/x86/intel/uncore: Fix NULL pointer dereference issue in upi_fill_topology()
CVE-2023-52449 mtd: Fix gluebi NULL pointer dereference caused by ftl notifier
CVE-2023-52448 gfs2: Fix kernel NULL pointer dereference in gfs2_rgrp_dump
CVE-2023-52446 bpf: Fix a race condition between btf_put() and map_free()
CVE-2023-52445 media: pvrusb2: fix use after free on context disconnection
CVE-2024-26590 erofs: fix inconsistent per-file compression format
CVE-2024-26588 LoongArch: BPF: Prevent out-of-bounds memory access
CVE-2024-26587 net: netdevsim: don't try to destroy PHC on VFs
CVE-2023-52443 apparmor: avoid crash when parsed profile name is empty

IV. Related Vulnerabilities

V. Comments for CVE-2024-26589

No comments yet


Leave a comment