In the Linux kernel, the following vulnerability has been resolved:
rpmsg: char: Fix race between the release of rpmsg_ctrldev and cdev
struct rpmsg_ctrldev contains a struct cdev. The current code frees the rpmsg_ctrldev struct in rpmsg_ctrldev_release_device(), but the cdev is a managed object, therefore its release is not predictable and the rpmsg_ctrldev could be freed before the cdev is entirely released, as in the backtrace below.
[ 93.625603] ODEBUG: free active (active state 0) object type: timer_list hint: delayed_work_timer_fn+0x0/0x7c [ 93.636115] WARNING: CPU: 0 PID: 12 at lib/debugobjects.c:488 debug_print_object+0x13c/0x1b0 [ 93.644799] Modules linked in: veth xt_cgroup xt_MASQUERADE rfcomm algif_hash algif_skcipher af_alg uinput ip6table_nat fuse uvcvideo videobuf2_vmalloc venus_enc venus_dec videobuf2_dma_contig hci_uart btandroid btqca snd_soc_rt5682_i2c bluetooth qcom_spmi_temp_alarm snd_soc_rt5682v [ 93.715175] CPU: 0 PID: 12 Comm: kworker/0:1 Tainted: G B 5.4.163-lockdep #26 [ 93.723855] Hardware name: Google Lazor (rev3 - 8) with LTE (DT) [ 93.730055] Workqueue: events kobject_delayed_cleanup [ 93.735271] pstate: 60c00009 (nZCv daif +PAN +UAO) [ 93.740216] pc : debug_print_object+0x13c/0x1b0 [ 93.744890] lr : debug_print_object+0x13c/0x1b0 [ 93.749555] sp : ffffffacf5bc7940 [ 93.752978] x29: ffffffacf5bc7940 x28: dfffffd000000000 [ 93.758448] x27: ffffffacdb11a800 x26: dfffffd000000000 [ 93.763916] x25: ffffffd0734f856c x24: dfffffd000000000 [ 93.769389] x23: 0000000000000000 x22: ffffffd0733c35b0 [ 93.774860] x21: ffffffd0751994a0 x20: ffffffd075ec27c0 [ 93.780338] x19: ffffffd075199100 x18: 00000000000276e0 [ 93.785814] x17: 0000000000000000 x16: dfffffd000000000 [ 93.791291] x15: ffffffffffffffff x14: 6e6968207473696c [ 93.796768] x13: 0000000000000000 x12: ffffffd075e2b000 [ 93.802244] x11: 0000000000000001 x10: 0000000000000000 [ 93.807723] x9 : d13400dff1921900 x8 : d13400dff1921900 [ 93.813200] x7 : 0000000000000000 x6 : 0000000000000000 [ 93.818676] x5 : 0000000000000080 x4 : 0000000000000000 [ 93.824152] x3 : ffffffd0732a0fa4 x2 : 0000000000000001 [ 93.829628] x1 : ffffffacf5bc7580 x0 : 0000000000000061 [ 93.835104] Call trace: [ 93.837644] debug_print_object+0x13c/0x1b0 [ 93.841963] __debug_check_no_obj_freed+0x25c/0x3c0 [ 93.846987] debug_check_no_obj_freed+0x18/0x20 [ 93.851669] slab_free_freelist_hook+0xbc/0x1e4 [ 93.856346] kfree+0xfc/0x2f4 [ 93.859416] rpmsg_ctrldev_release_device+0x78/0xb8 [ 93.864445] device_release+0x84/0x168 [ 93.868310] kobject_cleanup+0x12c/0x298 [ 93.872356] kobject_delayed_cleanup+0x10/0x18 [ 93.876948] process_one_work+0x578/0x92c [ 93.881086] worker_thread+0x804/0xcf8 [ 93.884963] kthread+0x2a8/0x314 [ 93.888303] ret_from_fork+0x10/0x18
The cdev_device_add/del() API was created to address this issue (see commit '233ed09d7fda ("chardev: add helper function to register char devs with a struct device")'), use it instead of cdev add/del().
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 |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jul 30, 2024 | Jun 20, 2024 |
| Suse | — | Upgrade kselftests-kmp-rtUpgrade kernel-azure-vdsoUpgrade kernel-devel-rtUpgrade kernel-symsUpgrade reiserfs-kmp-azureUpgrade gfs2-kmp-rtUpgrade kernel-default-extraUpgrade dlm-kmp-azureUpgrade kernel-default-baseUpgrade kernel-azure-develUpgrade kernel-rt_debug-vdsoUpgrade kernel-default-manUpgrade reiserfs-kmp-rtUpgrade kernel-macrosUpgrade kernel-azure-livepatch-develUpgrade kernel-64kb-develUpgrade kernel-rt-develUpgrade kernel-syms-rtUpgrade kernel-docsUpgrade ocfs2-kmp-rtUpgrade kernel-rt_debugUpgrade kernel-defaultUpgrade kernel-zfcpdumpUpgrade kernel-rt-livepatch-develUpgrade kernel-devel-azureUpgrade kernel-rtUpgrade kernel-default-develUpgrade cluster-md-kmp-azureUpgrade dlm-kmp-rtUpgrade kernel-obs-buildUpgrade kernel-source-azureUpgrade kernel-develUpgrade kernel-azureUpgrade kselftests-kmp-azureUpgrade kernel-sourceUpgrade kernel-preempt-develUpgrade cluster-md-kmp-rtUpgrade kernel-rt-vdsoUpgrade kernel-azure-extraUpgrade kernel-preemptUpgrade kernel-azure-baseUpgrade reiserfs-kmp-defaultUpgrade kernel-rt-optionalUpgrade kernel-syms-azureUpgrade ocfs2-kmp-azureUpgrade kernel-64kbUpgrade kernel-rt_debug-develUpgrade kernel-rt_debug-livepatch-develUpgrade gfs2-kmp-azureUpgrade kernel-source-rtUpgrade kernel-rt-extraUpgrade kernel-rt-livepatchUpgrade kernel-azure-optional | Aug 9, 2024 | Jun 20, 2024 |
| Ubuntu | — | Upgrade linux-fipsUpgrade linux-azure-fipsUpgrade linux-gcp-5.4Upgrade linux-aws-hweUpgrade linux-raspi-5.4Upgrade linuxUpgrade linux-ibm-5.4Upgrade linux-gcpUpgrade linux-oracle-5.4Upgrade linux-kvmUpgrade linux-oracleUpgrade linux-aws-5.4Upgrade linux-hwe-5.4Upgrade linux-raspiUpgrade linux-gkeopUpgrade linux-gcp-4.15Upgrade linux-gcp-fipsUpgrade linux-azure-5.4Upgrade linux-aws-fipsUpgrade linux-azureUpgrade linux-bluefieldUpgrade linux-iotUpgrade linux-hweUpgrade linux-ibmUpgrade linux-awsUpgrade linux-azure-4.15 | Nov 19, 2024 | Jun 20, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | May 27, 2026 | Jun 20, 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