CVE-2023-52839

Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
21/05/2024
Last modified:
26/09/2025

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> drivers: perf: Do not broadcast to other cpus when starting a counter<br /> <br /> This command:<br /> <br /> $ perf record -e cycles:k -e instructions:k -c 10000 -m 64M dd if=/dev/zero of=/dev/null count=1000<br /> <br /> gives rise to this kernel warning:<br /> <br /> [ 444.364395] WARNING: CPU: 0 PID: 104 at kernel/smp.c:775 smp_call_function_many_cond+0x42c/0x436<br /> [ 444.364515] Modules linked in:<br /> [ 444.364657] CPU: 0 PID: 104 Comm: perf-exec Not tainted 6.6.0-rc6-00051-g391df82e8ec3-dirty #73<br /> [ 444.364771] Hardware name: riscv-virtio,qemu (DT)<br /> [ 444.364868] epc : smp_call_function_many_cond+0x42c/0x436<br /> [ 444.364917] ra : on_each_cpu_cond_mask+0x20/0x32<br /> [ 444.364948] epc : ffffffff8009f9e0 ra : ffffffff8009fa5a sp : ff20000000003800<br /> [ 444.364966] gp : ffffffff81500aa0 tp : ff60000002b83000 t0 : ff200000000038c0<br /> [ 444.364982] t1 : ffffffff815021f0 t2 : 000000000000001f s0 : ff200000000038b0<br /> [ 444.364998] s1 : ff60000002c54d98 a0 : ff60000002a73940 a1 : 0000000000000000<br /> [ 444.365013] a2 : 0000000000000000 a3 : 0000000000000003 a4 : 0000000000000100<br /> [ 444.365029] a5 : 0000000000010100 a6 : 0000000000f00000 a7 : 0000000000000000<br /> [ 444.365044] s2 : 0000000000000000 s3 : ffffffffffffffff s4 : ff60000002c54d98<br /> [ 444.365060] s5 : ffffffff81539610 s6 : ffffffff80c20c48 s7 : 0000000000000000<br /> [ 444.365075] s8 : 0000000000000000 s9 : 0000000000000001 s10: 0000000000000001<br /> [ 444.365090] s11: ffffffff80099394 t3 : 0000000000000003 t4 : 00000000eac0c6e6<br /> [ 444.365104] t5 : 0000000400000000 t6 : ff60000002e010d0<br /> [ 444.365120] status: 0000000200000100 badaddr: 0000000000000000 cause: 0000000000000003<br /> [ 444.365226] [] smp_call_function_many_cond+0x42c/0x436<br /> [ 444.365295] [] on_each_cpu_cond_mask+0x20/0x32<br /> [ 444.365311] [] pmu_sbi_ctr_start+0x7a/0xaa<br /> [ 444.365327] [] riscv_pmu_start+0x48/0x66<br /> [ 444.365339] [] perf_adjust_freq_unthr_context+0x196/0x1ac<br /> [ 444.365356] [] perf_event_task_tick+0x78/0x8c<br /> [ 444.365368] [] scheduler_tick+0xe6/0x25e<br /> [ 444.365383] [] update_process_times+0x80/0x96<br /> [ 444.365398] [] tick_sched_handle+0x26/0x52<br /> [ 444.365410] [] tick_sched_timer+0x50/0x98<br /> [ 444.365422] [] __hrtimer_run_queues+0x126/0x18a<br /> [ 444.365433] [] hrtimer_interrupt+0xce/0x1da<br /> [ 444.365444] [] riscv_timer_interrupt+0x30/0x3a<br /> [ 444.365457] [] handle_percpu_devid_irq+0x80/0x114<br /> [ 444.365470] [] generic_handle_domain_irq+0x1c/0x2a<br /> [ 444.365483] [] riscv_intc_irq+0x2e/0x46<br /> [ 444.365497] [] handle_riscv_irq+0x4a/0x74<br /> [ 444.365521] [] do_irq+0x7c/0x7e<br /> [ 444.365796] ---[ end trace 0000000000000000 ]---<br /> <br /> That&amp;#39;s because the fix in commit 3fec323339a4 ("drivers: perf: Fix panic<br /> in riscv SBI mmap support") was wrong since there is no need to broadcast<br /> to other cpus when starting a counter, that&amp;#39;s only needed in mmap when<br /> the counters could have already been started on other cpus, so simply<br /> remove this broadcast.

Vulnerable products and versions

CPE From Up to
cpe:2.3:o:linux:linux_kernel:6.6:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.6:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.6:rc7:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.6.1:*:*:*:*:*:*:*