CVE-2023-52730: mmc: sdio: fix possible resource leaks in some error paths
In the Linux kernel, the following vulnerability has been resolved:
mmc: sdio: fix possible resource leaks in some error paths
If sdioaddfunc() or sdioinitfunc() fails, sdioremovefunc() can not release the resources, because the sdio function is not presented in these two cases, it won't call ofnodeput() or putdevice().
To fix these leaks, make sdiofuncpresent() only control whether devicedel() needs to be called or not, then always call ofnodeput() and putdevice().
In error case in sdioinitfunc(), the reference of 'card->dev' is not get, to avoid redundant put in sdiofreefunccis(), move the getdevice() to sdioallocfunc() and putdevice() to sdioreleasefunc(), it can keep the get/put function be balanced.
Without this patch, while doing fault inject test, it can get the following leak reports, after this fix, the leak is gone.
unreferenced object 0xffff888112514000 (size 2048): comm "kworker/3:2", pid 65, jiffies 4294741614 (age 124.774s) hex dump (first 32 bytes): 00 e0 6f 12 81 88 ff ff 60 58 8d 06 81 88 ff ff ..o.....X...... 10 40 51 12 81 88 ff ff 10 40 51 12 81 88 ff ff .@Q......@Q..... backtrace: [<000000009e5931da>] kmalloctrace+0x21/0x110 [<000000002f839ccb>] mmcalloccard+0x38/0xb0 [mmccore] [<0000000004adcbf6>] mmcsdioinitcard+0xde/0x170 [mmccore] [<000000007538fea0>] mmcattachsdio+0xcb/0x1b0 [mmccore] [<00000000d4fdeba7>] mmcrescan+0x54a/0x640 [mmccore]
unreferenced object 0xffff888112511000 (size 2048): comm "kworker/3:2", pid 65, jiffies 4294741623 (age 124.766s) hex dump (first 32 bytes): 00 40 51 12 81 88 ff ff e0 58 8d 06 81 88 ff ff .@Q......X...... 10 10 51 12 81 88 ff ff 10 10 51 12 81 88 ff ff ..Q.......Q..... backtrace: [<000000009e5931da>] kmalloctrace+0x21/0x110 [<00000000fcbe706c>] sdioallocfunc+0x35/0x100 [mmccore] [<00000000c68f4b50>] mmcattachsdio.cold.18+0xb1/0x395 [mmccore] [<00000000d4fdeba7>] mmcrescan+0x54a/0x640 [mmccore]
Other sources
In the Linux kernel, the following vulnerability has been resolved:
mmc: sdio: fix possible resource leaks in some error paths
The Linux kernel CVE team has assigned CVE-2023-52730 to this issue.
Upstream advisory: https://lore.kernel.org/linux-cve-announce/2024052158-CVE-2023-52730-1c8f@gregkh/T
— Red Hat
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2023-52730?
CVE-2023-52730 is classified as a medium-severity vulnerability in the Linux kernel.
How do I fix CVE-2023-52730?
To resolve CVE-2023-52730, update to kernel versions 4.14.306, 4.19.273, 5.4.232, 5.10.169, 5.15.95, 6.1.13, or 6.2.
Which systems are affected by CVE-2023-52730?
CVE-2023-52730 affects several versions of the Linux kernel as well as IBM Security Verify Governance products up to version ISVG 10.0.2.
What are the potential impacts of CVE-2023-52730?
CVE-2023-52730 may lead to resource leaks in certain error paths impacting system stability.
Is there a workaround for CVE-2023-52730?
There is no specific workaround for CVE-2023-52730; updating to a fixed kernel version is recommended.