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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2024-42096— x86: stop playing stack games in profile_pc()

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 存在安全漏洞,该漏洞源于在profile_pc函数基于栈布局做出假设,这些假设在现代配置中可能不成立,导致KASAN警告。

AI Predicted 5.3 Difficulty: Hard EPSS 0.24% · P14

Possible ATT&CK Techniques 1 AI

T1202 · Indirect Command Execution

Affected Version Matrix 18

VendorProduct Version RangeStatus
Linux Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2< 65ebdde16e7f5da99dbf8a548fb635837d78384e affected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2< 27c3be840911b15a3f24ed623f86153c825b6b29 affected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2< 49c09ca35a5f521d7fa18caf62fdf378f15e8aa4 affected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2< 2d07fea561d64357fb7b3f3751e653bf20306d77 affected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2< 161cef818545ecf980f0e2ebaf8ba7326ce53c2b affected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2< 16222beb9f8e5ceb0beeb5cbe54bef16df501a92 affected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2< a3b65c8cbc139bfce9541bc81c1bb766e5ba3f68 affected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2< 093d9603b60093a9aaae942db56107f6432a5dca affected
… +10 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2024-42096

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
x86: stop playing stack games in profile_pc()
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: x86: stop playing stack games in profile_pc() The 'profile_pc()' function is used for timer-based profiling, which isn't really all that relevant any more to begin with, but it also ends up making assumptions based on the stack layout that aren't necessarily valid. Basically, the code tries to account the time spent in spinlocks to the caller rather than the spinlock, and while I support that as a concept, it's not worth the code complexity or the KASAN warnings when no serious profiling is done using timers anyway these days. And the code really does depend on stack layout that is only true in the simplest of cases. We've lost the comment at some point (I think when the 32-bit and 64-bit code was unified), but it used to say: Assume the lock function has either no stack frame or a copy of eflags from PUSHF. which explains why it just blindly loads a word or two straight off the stack pointer and then takes a minimal look at the values to just check if they might be eflags or the return pc: Eflags always has bits 22 and up cleared unlike kernel addresses but that basic stack layout assumption assumes that there isn't any lock debugging etc going on that would complicate the code and cause a stack frame. It causes KASAN unhappiness reported for years by syzkaller [1] and others [2]. With no real practical reason for this any more, just remove the code. Just for historical interest, here's some background commits relating to this code from 2006: 0cb91a229364 ("i386: Account spinlocks to the caller during profiling for !FP kernels") 31679f38d886 ("Simplify profile_pc on x86-64") and a code unification from 2009: ef4512882dbe ("x86: time_32/64.c unify profile_pc") but the basics of this thing actually goes back to before the git tree.
Source: CVE Program / CVE List V5
CVSS Information
N/A
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 存在安全漏洞,该漏洞源于在profile_pc函数基于栈布局做出假设,这些假设在现代配置中可能不成立,导致KASAN警告。
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 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ~ 65ebdde16e7f5da99dbf8a548fb635837d78384e -
Linux Linux 2.6.12 -

II. Public POCs for CVE-2024-42096

# 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-42096

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

Other References for CVE-2024-42096 (8)

Same Patch Batch · Linux · 2024-07-29 · 121 CVEs total

CVE-2024-41081 9.8 CRITICAL ila: block BH in ila_output()
CVE-2024-41073 9.8 CRITICAL nvme: avoid double free special payload
CVE-2024-41040 9.8 CRITICAL net/sched: Fix UAF when resolving a clash
CVE-2024-41091 8.8 HIGH tun: add missing verification for short frame
CVE-2024-42083 8.8 HIGH ionic: fix kernel panic due to multi-buffer handling
CVE-2024-41062 8.8 HIGH bluetooth/l2cap: sync sock recv cb and release
CVE-2024-41046 8.8 HIGH net: ethernet: lantiq_etop: fix double free in detach
CVE-2024-41090 8.8 HIGH tap: add missing verification for short frame
CVE-2024-41057 7.8 HIGH cachefiles: fix slab-use-after-free in cachefiles_withdraw_cookie()
CVE-2024-41041 7.8 HIGH udp: Set SOCK_RCU_FREE earlier in udp_lib_get_port().
CVE-2024-42064 7.8 HIGH drm/amd/display: Skip pipe if the pipe idx not set properly
CVE-2024-41017 7.8 HIGH jfs: don't walk off the end of ealist
CVE-2024-41049 7.8 HIGH filelock: fix potential use-after-free in posix_lock_inode
CVE-2024-42066 7.8 HIGH drm/xe: Fix potential integer overflow in page size calculation
CVE-2024-41051 7.8 HIGH cachefiles: wait for ondemand_object_worker to finish when dropping object
CVE-2024-42067 7.8 HIGH bpf: Take return from set_memory_rox() into account with bpf_jit_binary_lock_ro()
CVE-2024-42068 7.8 HIGH bpf: Take return from set_memory_ro() into account with bpf_prog_lock_ro()
CVE-2024-42069 7.8 HIGH net: mana: Fix possible double free in error handling path
CVE-2024-42071 7.8 HIGH ionic: use dev_consume_skb_any outside of napi
CVE-2024-41064 7.8 HIGH powerpc/eeh: avoid possible crash when edev->pdev changes

Showing top 20 of 121 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2024-42096

No comments yet


Leave a comment