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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2024-39510— cachefiles: fix slab-use-after-free in cachefiles_ondemand_daemon_read()

EPSS 0.01% · P2
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2024-39510

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
cachefiles: fix slab-use-after-free in cachefiles_ondemand_daemon_read()
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: cachefiles: fix slab-use-after-free in cachefiles_ondemand_daemon_read() We got the following issue in a fuzz test of randomly issuing the restore command: ================================================================== BUG: KASAN: slab-use-after-free in cachefiles_ondemand_daemon_read+0xb41/0xb60 Read of size 8 at addr ffff888122e84088 by task ondemand-04-dae/963 CPU: 13 PID: 963 Comm: ondemand-04-dae Not tainted 6.8.0-dirty #564 Call Trace: kasan_report+0x93/0xc0 cachefiles_ondemand_daemon_read+0xb41/0xb60 vfs_read+0x169/0xb50 ksys_read+0xf5/0x1e0 Allocated by task 116: kmem_cache_alloc+0x140/0x3a0 cachefiles_lookup_cookie+0x140/0xcd0 fscache_cookie_state_machine+0x43c/0x1230 [...] Freed by task 792: kmem_cache_free+0xfe/0x390 cachefiles_put_object+0x241/0x480 fscache_cookie_state_machine+0x5c8/0x1230 [...] ================================================================== Following is the process that triggers the issue: mount | daemon_thread1 | daemon_thread2 ------------------------------------------------------------ cachefiles_withdraw_cookie cachefiles_ondemand_clean_object(object) cachefiles_ondemand_send_req REQ_A = kzalloc(sizeof(*req) + data_len) wait_for_completion(&REQ_A->done) cachefiles_daemon_read cachefiles_ondemand_daemon_read REQ_A = cachefiles_ondemand_select_req msg->object_id = req->object->ondemand->ondemand_id ------ restore ------ cachefiles_ondemand_restore xas_for_each(&xas, req, ULONG_MAX) xas_set_mark(&xas, CACHEFILES_REQ_NEW) cachefiles_daemon_read cachefiles_ondemand_daemon_read REQ_A = cachefiles_ondemand_select_req copy_to_user(_buffer, msg, n) xa_erase(&cache->reqs, id) complete(&REQ_A->done) ------ close(fd) ------ cachefiles_ondemand_fd_release cachefiles_put_object cachefiles_put_object kmem_cache_free(cachefiles_object_jar, object) REQ_A->object->ondemand->ondemand_id // object UAF !!! When we see the request within xa_lock, req->object must not have been freed yet, so grab the reference count of object before xa_unlock to avoid the above issue.
Source: NVD (National Vulnerability Database)
CVSS Information
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Type
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel 存在安全漏洞,该漏洞源于 cachefiles 组件在 cachefiles_ondemand_daemon_read 函数中存在释放后重用的问题。
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

VendorProductAffected VersionsCPESubscribe
LinuxLinux f17443d52d805c9a7fab5e67a4e8b973626fe1cd ~ cb55625f8eb9d2de8be4da0c4580d48cbb32058e -
LinuxLinux 6.8 -

II. Public POCs for CVE-2024-39510

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-39510

登录查看更多情报信息。

Same Patch Batch · Linux · 2024-07-12 · 122 CVEs total

CVE-2024-40960ipv6: prevent possible NULL dereference in rt6_probe()
CVE-2024-40975platform/x86: x86-android-tablets: Unregister devices in reverse order
CVE-2024-40974powerpc/pseries: Enforce hcall result buffer validity and size
CVE-2024-40973media: mtk-vcodec: potential null pointer deference in SCP
CVE-2024-40972ext4: do not create EA inode under buffer lock
CVE-2024-40970Avoid hw_desc array overrun in dw-axi-dmac
CVE-2024-40971f2fs: remove clear SB_INLINECRYPT flag in default_options
CVE-2024-40969f2fs: don't set RO when shutting down f2fs
CVE-2024-40967serial: imx: Introduce timeout when waiting on transmitter empty
CVE-2024-40968MIPS: Octeon: Add PCIe link status check
CVE-2024-40966tty: add the option to have a tty reject a new ldisc
CVE-2024-40965i2c: lpi2c: Avoid calling clk_get_rate during transfer
CVE-2024-40964ALSA: hda: cs35l41: Possible null pointer dereference in cs35l41_hda_unbind()
CVE-2024-40963mips: bmips: BCM6358: make sure CBR is correctly set
CVE-2024-40961ipv6: prevent possible NULL deref in fib6_nh_init()
CVE-2024-40962btrfs: zoned: allocate dummy checksums for zoned NODATASUM writes
CVE-2024-40951ocfs2: fix NULL pointer dereference in ocfs2_abort_trigger()
CVE-2024-40950mm: huge_memory: fix misused mapping_large_folio_support() for anon folios
CVE-2024-40949mm: shmem: fix getting incorrect lruvec when replacing a shmem folio
CVE-2024-40952ocfs2: fix NULL pointer dereference in ocfs2_journal_dirty()

Showing top 20 of 122 CVEs. View all on vendor page → →

IV. Related Vulnerabilities

V. Comments for CVE-2024-39510

No comments yet


Leave a comment