CVE-2023-52516
published 2024-03-02CVE-2023-52516: In the Linux kernel, the following vulnerability has been resolved: dma-debug: don't call __dma_entry_alloc_check_leak() under free_entries_lock…
PriorityP420medium5.5CVSS 3.1
AVLACLPRLUINSUCNINAH
EPSS
0.17%
6.7th percentile
In the Linux kernel, the following vulnerability has been resolved:
dma-debug: don't call __dma_entry_alloc_check_leak() under free_entries_lock
__dma_entry_alloc_check_leak() calls into printk -> serial console
output (qcom geni) and grabs port->lock under free_entries_lock
spin lock, which is a reverse locking dependency chain as qcom_geni
IRQ handler can call into dma-debug code and grab free_entries_lock
under port->lock.
Move __dma_entry_alloc_check_leak() call out of free_entries_lock
scope so that we don't acquire serial console's port->lock under it.
Trimmed-down lockdep splat:
The existing dependency chain (in reverse order) is:
-> #2 (free_entries_lock){-.-.}-{2:2}:
_raw_spin_lock_irqsave+0x60/0x80
dma_entry_alloc+0x38/0x110
debug_dma_map_page+0x60/0xf8
dma_map_page_attrs+0x1e0/0x230
dma_map_single_attrs.constprop.0+0x6c/0xc8
geni_se_rx_dma_prep+0x40/0xcc
qcom_geni_serial_isr+0x310/0x510
__handle_irq_event_percpu+0x110/0x244
handle_irq_event_percpu+0x20/0x54
handle_irq_event+0x50/0x88
handle_fasteoi_irq+0xa4/0xcc
handle_irq_desc+0x28/0x40
generic_handle_domain_irq+0x24/0x30
gic_handle_irq+0xc4/0x148
do_interrupt_handler+0xa4/0xb0
el1_interrupt+0x34/0x64
el1h_64_irq_handler+0x18/0x24
el1h_64_irq+0x64/0x68
arch_local_irq_enable+0x4/0x8
____do_softirq+0x18/0x24
...
-> #1 (&port_lock_key){-.-.}-{2:2}:
_raw_spin_lock_irqsave+0x60/0x80
qcom_geni_serial_console_write+0x184/0x1dc
console_flush_all+0x344/0x454
console_unlock+0x94/0xf0
vprintk_emit+0x238/0x24c
vprintk_default+0x3c/0x48
vprintk+0xb4/0xbc
_printk+0x68/0x90
register_console+0x230/0x38c
uart_add_one_port+0x338/0x494
qcom_geni_serial_probe+0x390/0x424
platform_probe+0x70/0xc0
really_probe+0x148/0x280
__driver_probe_device+0xfc/0x114
driver_probe_device+0x44/0x100
__device_attach_driver+0x64/0xdc
bus_for_each_drv+0xb0/0xd8
__device_attach+0xe4/0x140
device_initial_probe+0x1c/0x28
bus_probe_device+0x44/0xb0
device_add+0x538/0x668
of_device_add+0x44/0x50
of_platform_device_create_pdata+0x94/0xc8
of_p
Affected
15 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| debian | linux | < linux 6.1.64-1 (bookworm) | linux 6.1.64-1 (bookworm) |
| linux | linux | — | — |
| linux | linux | >= ceb51173b2b5bd7af0d99079f6bbacdcfc58fe08 < c79300599923daaa30f417c75555d5566b3d31ae | c79300599923daaa30f417c75555d5566b3d31ae |
| linux | linux | >= ceb51173b2b5bd7af0d99079f6bbacdcfc58fe08 < ac0d068099349cbca3d93f2e3b15bb329364b08c | ac0d068099349cbca3d93f2e3b15bb329364b08c |
| linux | linux | >= ceb51173b2b5bd7af0d99079f6bbacdcfc58fe08 < be8f49029eca3efbad0d74dbff3cb9129994ffab | be8f49029eca3efbad0d74dbff3cb9129994ffab |
| linux | linux | >= ceb51173b2b5bd7af0d99079f6bbacdcfc58fe08 < fe2b811a02c3244ebf6059039e4a9e715e26a9e3 | fe2b811a02c3244ebf6059039e4a9e715e26a9e3 |
| linux | linux | >= ceb51173b2b5bd7af0d99079f6bbacdcfc58fe08 < fb5a4315591dae307a65fc246ca80b5159d296e1 | fb5a4315591dae307a65fc246ca80b5159d296e1 |
| linux | linux_kernel | < 5.10.198 | 5.10.198 |
| linux | linux_kernel | >= 0 < 5.10.205-1 | 5.10.205-1 |
| linux | linux_kernel | >= 0 < 6.1.64-1 | 6.1.64-1 |
| linux | linux_kernel | >= 0 < 6.5.6-1 | 6.5.6-1 |
| linux | linux_kernel | >= 0 < 6.5.6-1 | 6.5.6-1 |
| linux | linux_kernel | >= 5.11 < 5.15.134 | 5.15.134 |
| linux | linux_kernel | >= 5.16 < 6.1.56 | 6.1.56 |
| linux | linux_kernel | >= 6.2 < 6.5.6 | 6.5.6 |
CVSS provenance
nvdv3.15.5MEDIUMCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
osv5.5MEDIUM
vendor_debian5.5MEDIUM
vendor_redhat5.5MEDIUM
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
Red Hat
kernel: dma-debug: don't call __dma_entry_alloc_check_leak() under free_entries_lock
vendor_redhat·2024-03-02·CVSS 5.5
CVE-2023-52516 [MEDIUM] CWE-413 kernel: dma-debug: don't call __dma_entry_alloc_check_leak() under free_entries_lock
kernel: dma-debug: don't call __dma_entry_alloc_check_leak() under free_entries_lock
In the Linux kernel, the following vulnerability has been resolved:
dma-debug: don't call __dma_entry_alloc_check_leak() under free_entries_lock
__dma_entry_alloc_check_leak() calls into printk -> serial console
output (qcom geni) and grabs port->lock under free_entries_lock
spin lock, which is a reverse locking dependency chain as qcom_geni
IRQ handler can call into dma-debug code and grab free_entries_lock
under port->lock.
Move __dma_entry_alloc_check_leak() call out of free_entries_lock
scope so that we don't acquire serial console's port->lock under it.
Trimmed-down lockdep splat:
The existing dependency chain (in reverse order) is:
-> #2 (free_entries_lock){-.-.}-{2:2}:
_raw_spin_lock_irqsave+0x60/0
Debian
CVE-2023-52516: linux - In the Linux kernel, the following vulnerability has been resolved: dma-debug: ...
vendor_debian·2023·CVSS 5.5
CVE-2023-52516 [MEDIUM] CVE-2023-52516: linux - In the Linux kernel, the following vulnerability has been resolved: dma-debug: ...
In the Linux kernel, the following vulnerability has been resolved: dma-debug: don't call __dma_entry_alloc_check_leak() under free_entries_lock __dma_entry_alloc_check_leak() calls into printk -> serial console output (qcom geni) and grabs port->lock under free_entries_lock spin lock, which is a reverse locking dependency chain as qcom_geni IRQ handler can call into dma-debug code and grab free_entries_lock under port->lock. Move __dma_entry_alloc_check_leak() call out of free_entries_lock scope so that we don't acquire serial console's port->lock under it. Trimmed-down lockdep splat: The existing dependency chain (in reverse order) is: -> #2 (free_entries_lock){-.-.}-{2:2}: _raw_spin_lock_irqsave+0x60/0x80 dma_entry_alloc+0x38/0x110 debug_dma_map_page+0x60/0xf8 dma_map_page_attrs+0x1e0/0
GHSA
GHSA-4jr3-hwqp-2vq3: In the Linux kernel, the following vulnerability has been resolved:
dma-debug: don't call __dma_entry_alloc_check_leak() under free_entries_lock
__d
ghsa_unreviewed·2024-03-03
CVE-2023-52516 [MEDIUM] CWE-667 GHSA-4jr3-hwqp-2vq3: In the Linux kernel, the following vulnerability has been resolved:
dma-debug: don't call __dma_entry_alloc_check_leak() under free_entries_lock
__d
In the Linux kernel, the following vulnerability has been resolved:
dma-debug: don't call __dma_entry_alloc_check_leak() under free_entries_lock
__dma_entry_alloc_check_leak() calls into printk -> serial console
output (qcom geni) and grabs port->lock under free_entries_lock
spin lock, which is a reverse locking dependency chain as qcom_geni
IRQ handler can call into dma-debug code and grab free_entries_lock
under port->lock.
Move __dma_entry_alloc_check_leak() call out of free_entries_lock
scope so that we don't acquire serial console's port->lock under it.
Trimmed-down lockdep splat:
The existing dependency chain (in reverse order) is:
-> #2 (free_entries_lock){-.-.}-{2:2}:
_raw_spin_lock_irqsave+0x60/0x80
dma_entry_alloc+0x38/0x110
debug_dma_map_page+0x60/0xf8
dma_map_page_attrs+0
OSV
CVE-2023-52516: In the Linux kernel, the following vulnerability has been resolved: dma-debug: don't call __dma_entry_alloc_check_leak() under free_entries_lock __dma
osv·2024-03-02·CVSS 5.5
CVE-2023-52516 [MEDIUM] CVE-2023-52516: In the Linux kernel, the following vulnerability has been resolved: dma-debug: don't call __dma_entry_alloc_check_leak() under free_entries_lock __dma
In the Linux kernel, the following vulnerability has been resolved: dma-debug: don't call __dma_entry_alloc_check_leak() under free_entries_lock __dma_entry_alloc_check_leak() calls into printk -> serial console output (qcom geni) and grabs port->lock under free_entries_lock spin lock, which is a reverse locking dependency chain as qcom_geni IRQ handler can call into dma-debug code and grab free_entries_lock under port->lock. Move __dma_entry_alloc_check_leak() call out of free_entries_lock scope so that we don't acquire serial console's port->lock under it. Trimmed-down lockdep splat: The existing dependency chain (in reverse order) is: -> #2 (free_entries_lock){-.-.}-{2:2}: _raw_spin_lock_irqsave+0x60/0x80 dma_entry_alloc+0x38/0x110 debug_dma_map_page+0x60/0xf8 dma_map_page_attrs+0x1e0/0
No detection rules found.
No public exploits indexed.
https://git.kernel.org/stable/c/ac0d068099349cbca3d93f2e3b15bb329364b08chttps://git.kernel.org/stable/c/be8f49029eca3efbad0d74dbff3cb9129994ffabhttps://git.kernel.org/stable/c/c79300599923daaa30f417c75555d5566b3d31aehttps://git.kernel.org/stable/c/fb5a4315591dae307a65fc246ca80b5159d296e1https://git.kernel.org/stable/c/fe2b811a02c3244ebf6059039e4a9e715e26a9e3https://git.kernel.org/stable/c/ac0d068099349cbca3d93f2e3b15bb329364b08chttps://git.kernel.org/stable/c/be8f49029eca3efbad0d74dbff3cb9129994ffabhttps://git.kernel.org/stable/c/c79300599923daaa30f417c75555d5566b3d31aehttps://git.kernel.org/stable/c/fb5a4315591dae307a65fc246ca80b5159d296e1https://git.kernel.org/stable/c/fe2b811a02c3244ebf6059039e4a9e715e26a9e3
2024-03-02
Published