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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2024-43853— cgroup/cpuset: Prevent UAF in proc_cpuset_show()

EPSS 0.02% · P5
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2024-43853

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
cgroup/cpuset: Prevent UAF in proc_cpuset_show()
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: cgroup/cpuset: Prevent UAF in proc_cpuset_show() An UAF can happen when /proc/cpuset is read as reported in [1]. This can be reproduced by the following methods: 1.add an mdelay(1000) before acquiring the cgroup_lock In the cgroup_path_ns function. 2.$cat /proc/<pid>/cpuset repeatly. 3.$mount -t cgroup -o cpuset cpuset /sys/fs/cgroup/cpuset/ $umount /sys/fs/cgroup/cpuset/ repeatly. The race that cause this bug can be shown as below: (umount) | (cat /proc/<pid>/cpuset) css_release | proc_cpuset_show css_release_work_fn | css = task_get_css(tsk, cpuset_cgrp_id); css_free_rwork_fn | cgroup_path_ns(css->cgroup, ...); cgroup_destroy_root | mutex_lock(&cgroup_mutex); rebind_subsystems | cgroup_free_root | | // cgrp was freed, UAF | cgroup_path_ns_locked(cgrp,..); When the cpuset is initialized, the root node top_cpuset.css.cgrp will point to &cgrp_dfl_root.cgrp. In cgroup v1, the mount operation will allocate cgroup_root, and top_cpuset.css.cgrp will point to the allocated &cgroup_root.cgrp. When the umount operation is executed, top_cpuset.css.cgrp will be rebound to &cgrp_dfl_root.cgrp. The problem is that when rebinding to cgrp_dfl_root, there are cases where the cgroup_root allocated by setting up the root for cgroup v1 is cached. This could lead to a Use-After-Free (UAF) if it is subsequently freed. The descendant cgroups of cgroup v1 can only be freed after the css is released. However, the css of the root will never be released, yet the cgroup_root should be freed when it is unmounted. This means that obtaining a reference to the css of the root does not guarantee that css.cgrp->root will not be freed. Fix this problem by using rcu_read_lock in proc_cpuset_show(). As cgroup_root is kfree_rcu after commit d23b5c577715 ("cgroup: Make operations on the cgroup root_list RCU safe"), css->cgroup won't be freed during the critical section. To call cgroup_path_ns_locked, css_set_lock is needed, so it is safe to replace task_get_css with task_css. [1] https://syzkaller.appspot.com/bug?extid=9b1ff7be974a403aa4cd
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存在安全漏洞,该漏洞源于 cgroup/cpuset 模块在读取/proc/cpuset时可能发生释放后重用,需要在proc_cpuset_show中使用rcu_read_lock来解决。
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 a79a908fd2b080977b45bf103184b81c9d11ad07 ~ 27d6dbdc6485d68075a0ebf8544d6425c1ed84bb -
LinuxLinux 4.6 -

II. Public POCs for CVE-2024-43853

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-43853

登录查看更多情报信息。

Same Patch Batch · Linux · 2024-08-17 · 109 CVEs total

CVE-2024-43819kvm: s390: Reject memory region operations for ucontrol VMs
CVE-2024-43831media: mediatek: vcodec: Handle invalid decoder vsi
CVE-2024-43832s390/uv: Don't call folio_wait_writeback() without a folio reference
CVE-2024-43830leds: trigger: Unregister sysfs attributes before calling deactivate()
CVE-2024-43829drm/qxl: Add check for drm_cvt_mode
CVE-2024-43828ext4: fix infinite loop when replaying fast_commit
CVE-2024-43827drm/amd/display: Add null check before access structs
CVE-2024-43826nfs: pass explicit offset/count to trace events
CVE-2024-43825iio: Fix the sorting functionality in iio_gts_build_avail_time_table
CVE-2024-43823PCI: keystone: Fix NULL pointer dereference in case of DT error in ks_pcie_setup_rc_app_re
CVE-2024-43824PCI: endpoint: pci-epf-test: Make use of cached 'epc_features' in pci_epf_test_core_init()
CVE-2024-43822ASoc: PCM6240: Return directly after a failed devm_kzalloc() in pcmdevice_i2c_probe()
CVE-2024-43821scsi: lpfc: Fix a possible null pointer dereference
CVE-2024-43820dm-raid: Fix WARN_ON_ONCE check for sync_thread in raid_resume
CVE-2024-42317mm/huge_memory: avoid PMD-size page cache if needed
CVE-2024-42320s390/dasd: fix error checks in dasd_copy_pair_store()
CVE-2024-42319mailbox: mtk-cmdq: Move devm_mbox_controller_register() after devm_pm_runtime_enable()
CVE-2024-42318landlock: Don't lose track of restrictions on cred_transfer
CVE-2024-42321net: flow_dissector: use DEBUG_NET_WARN_ON_ONCE
CVE-2024-42316mm/mglru: fix div-by-zero in vmpressure_calc_level()

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

IV. Related Vulnerabilities

V. Comments for CVE-2024-43853

No comments yet


Leave a comment