CVE-2022-49623·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: powerpc/xive/spapr: correct bitmap allocation size kasan detects access beyond the end of the xibm->bitmap allocation: BUG: KASAN: slab-out-of-bounds in _find_first_zero_bit+0x40/0x140 Read of size 8 at addr c00000001d1d0118 by task swapper/0/1 CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.19.0-rc2-00001-g90df023b36dd #28 Call Trace: [c00000001d98f770] [c0000000012baab8] dump_stack_lvl+0xac/0x108 (unreliable) [c00000001d98f7b0] [c00000000068faac] print_report+0x37c/0x710 [c00000001d98f880] [c0000000006902c0] kasan_report+0x110/0x354 [c00000001d98f950] [c000000000692324] __asan_load8+0xa4/0xe0 [c00000001d98f970] [c0000000011c6ed0] _find_first_zero_bit+0x40/0x140 [c00000001d98f9b0] [c0000000000dbfbc] xive_spapr_get_ipi+0xcc/0x260 [c00000001d98fa70] [c0000000000d6d28] xive_setup_cpu_ipi+0x1e8/0x450 [c00000001d98fb30] [c000000004032a20] pSeries_smp_probe+0x5c/0x118 [c00000001d98fb60] [c000000004018b44] smp_prepare_cpus+0x944/0x9ac [c00000001d98fc90] [c000000004009f9c] kernel_init_freeable+0x2d4/0x640 [c00000001d98fd90] [c0000000000131e8] kernel_init+0x28/0x1d0 [c00000001d98fe10] [c00000000000cd54] ret_from_kernel_thread+0x5c/0x64 Allocated by task 0: kasan_save_stack+0x34/0x70 __kasan_kmalloc+0xb4/0xf0 __kmalloc+0x268/0x540 xive_spapr_init+0x4d0/0x77c pseries_init_irq+0x40/0x27c init_IRQ+0x44/0x84 start_kernel+0x2a4/0x538 start_here_common+0x1c/0x20 The buggy address belongs to the object at c00000001d1d0118 which belongs to the cache kmalloc-8 of size 8 The buggy address is located 0 bytes inside of 8-byte region [c00000001d1d0118, c00000001d1d0120) The buggy address belongs to the physical page: page:c00c000000074740 refcount:1 mapcount:0 mapping:0000000000000000 index:0xc00000001d1d0558 pfn:0x1d1d flags: 0x7ffff000000200(slab|node=0|zone=0|lastcpupid=0x7ffff) raw: 007ffff000000200 c00000001d0003c8 c00000001d0003c8 c00000001d010480 raw: c00000001d1d0558 0000000001e1000a 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: c00000001d1d0000: fc 00 fc fc fc fc fc fc fc fc fc fc fc fc fc fc c00000001d1d0080: fc fc 00 fc fc fc fc fc fc fc fc fc fc fc fc fc >c00000001d1d0100: fc fc fc 02 fc fc fc fc fc fc fc fc fc fc fc fc ^ c00000001d1d0180: fc fc fc fc 04 fc fc fc fc fc fc fc fc fc fc fc c00000001d1d0200: fc fc fc fc fc 04 fc fc fc fc fc fc fc fc fc fc This happens because the allocation uses the wrong unit (bits) when it should pass (BITS_TO_LONGS(count) * sizeof(long)) or equivalent. With small numbers of bits, the allocated object can be smaller than sizeof(long), which results in invalid accesses. Use bitmap_zalloc() to allocate and initialize the irq bitmap, paired with bitmap_free() for consistency.
- Severity
- high
- Software
- Kernel
- Fixed in
- 5.18.13
- Published
- 2025-02-26
Affected versions
From: 5.16
Until: 5.18.13
Fixed in: 5.18.13
How to fix this CVE
Update the Linux kernel to version 5.18.13 or later to resolve a memory allocation bug in the PowerPC XIVE interrupt controller driver. This vulnerability causes out-of-bounds memory access during bitmap operations, potentially leading to kernel crashes or information disclosure. Apply the patch immediately to systems running affected kernel versions 5.16 through 5.18.12.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Step 1: Check your current kernel version with `uname -r` and compare against the affected range (5.16.x through 5.18.12)
- Step 2: Verify the XIVE interrupt controller is in use on PowerPC systems by checking `cat /proc/cpuinfo | grep -i power` and `cat /proc/interrupts | head -5`
- Step 3: Search kernel logs for KASAN errors or CPU exceptions related to xive_spapr functions: `sudo grep -i 'kasan\|xive_spapr\|slab-out-of-bounds' /var/log/kern.log | head -20`
- Step 4: Confirm the patch by verifying kernel version is 5.18.13+ and checking for the bitmap_zalloc/bitmap_free usage in kernel build: `grep -r 'bitmap_zalloc' /boot/config-$(uname -r)` or after update `uname -r` should show 5.18.13 or newer
FAQ
What is CVE-2022-49623?
CVE-2022-49623 is a memory allocation vulnerability in the Linux kernel's PowerPC XIVE interrupt controller subsystem where bitmap allocation uses incorrect size calculations, resulting in heap buffer overflows when the bitmap operations attempt to access memory beyond the allocated region.
Is CVE-2022-49623 being actively exploited?
No, CVE-2022-49623 is not listed in CISA's Known Exploited Vulnerabilities (KEV) catalog and no public exploits are available, though the vulnerability can cause denial-of-service through kernel crashes.
What versions of Kernel are affected by CVE-2022-49623?
Linux kernel versions 5.16.0 through 5.18.12 are vulnerable. The fix was introduced in kernel 5.18.13 and later stable releases.
How do I check if my server is vulnerable to CVE-2022-49623?
Run `uname -r` to get your kernel version. If it shows 5.16.x through 5.18.12 and your system is PowerPC-based (check with `uname -m | grep -i ppc`), your system is vulnerable.
Does Defensia detect CVE-2022-49623?
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-2022-49623 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2022-49623. Free for 1 server.
Get started free