CVE-2023-52797·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: drivers: perf: Check find_first_bit() return value We must check the return value of find_first_bit() before using the return value as an index array since it happens to overflow the array and then panic: [ 107.318430] Kernel BUG [#1] [ 107.319434] CPU: 3 PID: 1238 Comm: kill Tainted: G E 6.6.0-rc6ubuntu-defconfig #2 [ 107.319465] Hardware name: riscv-virtio,qemu (DT) [ 107.319551] epc : pmu_sbi_ovf_handler+0x3a4/0x3ae [ 107.319840] ra : pmu_sbi_ovf_handler+0x52/0x3ae [ 107.319868] epc : ffffffff80a0a77c ra : ffffffff80a0a42a sp : ffffaf83fecda350 [ 107.319884] gp : ffffffff823961a8 tp : ffffaf8083db1dc0 t0 : ffffaf83fecda480 [ 107.319899] t1 : ffffffff80cafe62 t2 : 000000000000ff00 s0 : ffffaf83fecda520 [ 107.319921] s1 : ffffaf83fecda380 a0 : 00000018fca29df0 a1 : ffffffffffffffff [ 107.319936] a2 : 0000000001073734 a3 : 0000000000000004 a4 : 0000000000000000 [ 107.319951] a5 : 0000000000000040 a6 : 000000001d1c8774 a7 : 0000000000504d55 [ 107.319965] s2 : ffffffff82451f10 s3 : ffffffff82724e70 s4 : 000000000000003f [ 107.319980] s5 : 0000000000000011 s6 : ffffaf8083db27c0 s7 : 0000000000000000 [ 107.319995] s8 : 0000000000000001 s9 : 00007fffb45d6558 s10: 00007fffb45d81a0 [ 107.320009] s11: ffffaf7ffff60000 t3 : 0000000000000004 t4 : 0000000000000000 [ 107.320023] t5 : ffffaf7f80000000 t6 : ffffaf8000000000 [ 107.320037] status: 0000000200000100 badaddr: 0000000000000000 cause: 0000000000000003 [ 107.320081] [<ffffffff80a0a77c>] pmu_sbi_ovf_handler+0x3a4/0x3ae [ 107.320112] [<ffffffff800b42d0>] handle_percpu_devid_irq+0x9e/0x1a0 [ 107.320131] [<ffffffff800ad92c>] generic_handle_domain_irq+0x28/0x36 [ 107.320148] [<ffffffff8065f9f8>] riscv_intc_irq+0x36/0x4e [ 107.320166] [<ffffffff80caf4a0>] handle_riscv_irq+0x54/0x86 [ 107.320189] [<ffffffff80cb0036>] do_irq+0x64/0x96 [ 107.320271] Code: 85a6 855e b097 ff7f 80e7 9220 b709 9002 4501 bbd9 (9002) 6097 [ 107.320585] ---[ end trace 0000000000000000 ]--- [ 107.320704] Kernel panic - not syncing: Fatal exception in interrupt [ 107.320775] SMP: stopping secondary CPUs [ 107.321219] Kernel Offset: 0x0 from 0xffffffff80000000 [ 107.333051] ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]---
- Severity
- medium
- Software
- Kernel
- Fixed in
- 6.6.3
- Published
- 2024-05-21
Affected versions
From: 6.6
Until: 6.6.3
Fixed in: 6.6.3
How to fix this CVE
Update your Linux kernel to version 6.6.3 or later to resolve a critical null-pointer dereference in the performance monitoring subsystem. The vulnerability occurs when the PMU overflow handler fails to validate bitmap search results before array indexing, potentially causing kernel panics on RISC-V and other architectures. Apply the fix immediately to systems running kernel versions 6.6.0 through 6.6.2.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Step 1: Check installed kernel version with `uname -r` — versions 6.6.0 through 6.6.2 are vulnerable
- Step 2: Verify if RISC-V or performance monitoring features are active: `cat /proc/cpuinfo | grep -i riscv` or check perf subsystem with `ls /sys/devices/cpu/events/`
- Step 3: Search system logs for PMU-related kernel panics: `sudo journalctl --grep='pmu_sbi_ovf_handler\|perf.*BUG\|Kernel panic' | grep -i 'Fatal exception'`
- Step 4: Confirm patch applied by verifying kernel version is 6.6.3 or later with `uname -r` after reboot
FAQ
What is CVE-2023-52797?
This vulnerability is a logic error in the Linux kernel's performance monitoring unit (PMU) interrupt handler that fails to validate the return value of find_first_bit() before using it as an array index, leading to out-of-bounds memory access and kernel panic.
Is CVE-2023-52797 being actively exploited?
No, this vulnerability is not listed on the CISA Known Exploited Vulnerabilities (KEV) catalog and no public exploits are available. However, it can be triggered locally by unprivileged users on affected systems.
What versions of Kernel are affected by CVE-2023-52797?
Linux kernel versions 6.6.0, 6.6.1, and 6.6.2 are affected. The vulnerability was fixed in kernel 6.6.3 and later stable releases.
How do I check if my server is vulnerable to CVE-2023-52797?
Run `uname -r` to check your kernel version. If the output shows 6.6.0, 6.6.1, or 6.6.2, your system is vulnerable and requires immediate patching.
Does Defensia detect CVE-2023-52797?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If the Linux kernel is installed on a monitored server, CVE-2023-52797 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/2c86b24095fcf72cf51bc72d12e4350163b4e11d
- https://git.kernel.org/stable/c/45a0de41ec383c8b7c6d442734ba3852dd2fc4a7
- https://git.kernel.org/stable/c/c6e316ac05532febb0c966fa9b55f5258ed037be
- https://git.kernel.org/stable/c/2c86b24095fcf72cf51bc72d12e4350163b4e11d
- https://git.kernel.org/stable/c/45a0de41ec383c8b7c6d442734ba3852dd2fc4a7
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2023-52797. Free for 1 server.
Get started free