UBUNTU-CVE-2024-58056
In the Linux kernel, the following vulnerability has been resolved: remoteproc: core: Fix ida_free call while not allocated In the rproc_alloc() function, on error, put_device(&rproc->dev) is called, leading to the call of the rproc_type_release() function. An error can occurs before ida_alloc is called. In such case in rproc_type_release(), the condition (rproc->index >= 0) is true as rproc->index has been initialized to 0. ida_free() is called reporting a warning: [ 4.181906] WARNING: CPU: 1 PID: 24 at lib/idr.c:525 ida_free+0x100/0x164 [ 4.186378] stm32-display-dsi 5a000000.dsi: Fixed dependency cycle(s) with /soc/dsi@5a000000/panel@0 [ 4.188854] ida_free called for id=0 which is not allocated. [ 4.198256] mipi-dsi 5a000000.dsi.0: Fixed dependency cycle(s) with /soc/dsi@5a000000 [ 4.203556] Modules linked in: panel_orisetech_otm8009a dw_mipi_dsi_stm(+) gpu_sched dw_mipi_dsi stm32_rproc stm32_crc32 stm32_ipcc(+) optee(+) [ 4.224307] CPU: 1 UID: 0 PID: 24 Comm: kworker/u10:0 Not tainted 6.12.0 #442 [ 4.231481] Hardware name: STM32 (Device Tree Support) [ 4.236627] Workqueue: events_unbound deferred_probe_work_func [ 4.242504] Call trace: [ 4.242522] unwind_backtrace from show_stack+0x10/0x14 [ 4.250218] show_stack from dump_stack_lvl+0x50/0x64 [ 4.255274] dump_stack_lvl from __warn+0x80/0x12c [ 4.260134] __warn from warn_slowpath_fmt+0x114/0x188 [ 4.265199] warn_slowpath_fmt from ida_free+0x100/0x164 [ 4.270565] ida_free from rproc_type_release+0x38/0x60 [ 4.275832] rproc_type_release from device_release+0x30/0xa0 [ 4.281601] device_release from kobject_put+0xc4/0x294 [ 4.286762] kobject_put from rproc_alloc.part.0+0x208/0x28c [ 4.292430] rproc_alloc.part.0 from devm_rproc_alloc+0x80/0xc4 [ 4.298393] devm_rproc_alloc from stm32_rproc_probe+0xd0/0x844 [stm32_rproc] [ 4.305575] stm32_rproc_probe [stm32_rproc] from platform_probe+0x5c/0xbc Calling ida_alloc earlier in rproc_alloc ensures that the rproc->index is properly set.
02 / AFFECTED SOFTWARE
Affected packages
2 explicit affected versions
29 explicit affected versions
10 explicit affected versions
11 explicit affected versions
23 explicit affected versions
1 explicit affected versions
14 explicit affected versions
26 explicit affected versions
30 explicit affected versions
7 explicit affected versions
26 explicit affected versions
4 explicit affected versions
37 explicit affected versions
26 explicit affected versions
10 explicit affected versions
10 explicit affected versions
13 explicit affected versions
13 explicit affected versions
78 explicit affected versions
25 explicit affected versions
19 explicit affected versions
45 explicit affected versions
37 explicit affected versions
8 explicit affected versions
4 explicit affected versions
8 explicit affected versions
19 explicit affected versions
24 explicit affected versions
23 explicit affected versions
7 explicit affected versions
10 explicit affected versions
3 explicit affected versions
19 explicit affected versions
33 explicit affected versions
29 explicit affected versions
16 explicit affected versions
20 explicit affected versions
13 explicit affected versions
21 explicit affected versions
12 explicit affected versions
26 explicit affected versions
38 explicit affected versions
51 explicit affected versions
13 explicit affected versions
10 explicit affected versions
31 explicit affected versions
13 explicit affected versions
10 explicit affected versions
13 explicit affected versions
17 explicit affected versions
1 explicit affected versions
10 explicit affected versions
10 explicit affected versions
1 explicit affected versions
8 explicit affected versions
25 explicit affected versions
13 explicit affected versions
21 explicit affected versions
6 explicit affected versions
13 explicit affected versions
12 explicit affected versions
22 explicit affected versions
7 explicit affected versions
14 explicit affected versions
18 explicit affected versions
12 explicit affected versions
26 explicit affected versions
1 explicit affected versions
21 explicit affected versions
13 explicit affected versions
23 explicit affected versions
23 explicit affected versions
14 explicit affected versions
5 explicit affected versions
24 explicit affected versions
5 explicit affected versions
21 explicit affected versions
3 explicit affected versions
26 explicit affected versions
12 explicit affected versions
44 explicit affected versions
4 explicit affected versions
4 explicit affected versions
4 explicit affected versions
16 explicit affected versions
9 explicit affected versions
12 explicit affected versions
4 explicit affected versions
27 explicit affected versions
7 explicit affected versions
13 explicit affected versions
7 explicit affected versions
5 explicit affected versions
13 explicit affected versions
7 explicit affected versions
10 explicit affected versions
14 explicit affected versions
18 explicit affected versions
3 explicit affected versions
16 explicit affected versions
43 explicit affected versions
11 explicit affected versions
35 explicit affected versions
12 explicit affected versions
13 explicit affected versions
6 explicit affected versions
12 explicit affected versions
1 explicit affected versions
24 explicit affected versions
50 explicit affected versions
11 explicit affected versions
12 explicit affected versions
19 explicit affected versions
27 explicit affected versions
12 explicit affected versions
7 explicit affected versions
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
In the Linux kernel, the following vulnerability has been resolved: remoteproc: core: Fix ida_free call while not allocated In the rproc_alloc() function, on error, put_device(&rproc->dev) is called, leading to the call of the rproc_type_release() function. An error can occurs before ida_alloc is called. In such case in rproc_type_release(), the condition (rproc->index >= 0) is true as rproc->index has been initialized to 0. ida_free() is called reporting a warning: [ 4.181906] WARNING: CPU: 1 PID: 24 at lib/idr.c:525 ida_free+0x100/0x164 [ 4.186378] stm32-display-dsi 5a000000.dsi: Fixed dependency cycle(s) with /soc/dsi@5a000000/panel@0 [ 4.188854] ida_free called for id=0 which is not allocated. [ 4.198256] mipi-dsi 5a000000.dsi.0: Fixed dependency cycle(s) with /soc/dsi@5a000000 [ 4.203556] Modules linked in: panel_orisetech_otm8009a dw_mipi_dsi_stm(+) gpu_sched dw_mipi_dsi stm32_rproc stm32_crc32 stm32_ipcc(+) optee(+) [ 4.224307] CPU: 1 UID: 0 PID: 24 Comm: kworker/u10:0 Not tainted 6.12.0 #442 [ 4.231481] Hardware name: STM32 (Device Tree Support) [ 4.236627] Workqueue: events_unbound deferred_probe_work_func [ 4.242504] Call trace: [ 4.242522] unwind_backtrace from show_stack+0x10/0x14 [ 4.250218] show_stack from dump_stack_lvl+0x50/0x64 [ 4.255274] dump_stack_lvl from __warn+0x80/0x12c [ 4.260134] __warn from warn_slowpath_fmt+0x114/0x188 [ 4.265199] warn_slowpath_fmt from ida_free+0x100/0x164 [ 4.270565] ida_free from rproc_type_release+0x38/0x60 [ 4.275832] rproc_type_release from device_release+0x30/0xa0 [ 4.281601] device_release from kobject_put+0xc4/0x294 [ 4.286762] kobject_put from rproc_alloc.part.0+0x208/0x28c [ 4.292430] rproc_alloc.part.0 from devm_rproc_alloc+0x80/0xc4 [ 4.298393] devm_rproc_alloc from stm32_rproc_probe+0xd0/0x844 [stm32_rproc] [ 4.305575] stm32_rproc_probe [stm32_rproc] from platform_probe+0x5c/0xbc Calling ida_alloc earlier in rproc_alloc ensures that the rproc->index is properly set.
05 / REFERENCES
Further evidence
- https://git.kernel.org/linus/7378aeb664e5ebc396950b36a1f2dedf5aabec20
- https://git.kernel.org/stable/c/2cf54928e7e32362215c69b68a6a53d110323bf3
- https://git.kernel.org/stable/c/7378aeb664e5ebc396950b36a1f2dedf5aabec20
- https://git.kernel.org/stable/c/b32d60a852bb3952886625d0c3b1c9a88c3ceb7c
- https://git.kernel.org/stable/c/e9efd9fa4679803fe23188d7b47119cf7bc2de6f
- https://git.kernel.org/stable/c/f2013d19b7704cd723ab42664b8d9408ea8cc77c
- https://ubuntu.com/security/CVE-2024-58056
- https://ubuntu.com/security/notices/USN-7521-1
- https://ubuntu.com/security/notices/USN-7521-2
- https://ubuntu.com/security/notices/USN-7521-3
- https://ubuntu.com/security/notices/USN-7651-1
- https://ubuntu.com/security/notices/USN-7651-2
- https://ubuntu.com/security/notices/USN-7651-3
- https://ubuntu.com/security/notices/USN-7651-4
- https://ubuntu.com/security/notices/USN-7651-5
- https://ubuntu.com/security/notices/USN-7651-6
- https://ubuntu.com/security/notices/USN-7652-1
- https://ubuntu.com/security/notices/USN-7653-1
- https://ubuntu.com/security/notices/USN-7737-1
- https://www.cve.org/CVERecord?id=CVE-2024-58056