CVE-2021-47338·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: fbmem: Do not delete the mode that is still in use The execution of fb_delete_videomode() is not based on the result of the previous fbcon_mode_deleted(). As a result, the mode is directly deleted, regardless of whether it is still in use, which may cause UAF. ================================================================== BUG: KASAN: use-after-free in fb_mode_is_equal+0x36e/0x5e0 \ drivers/video/fbdev/core/modedb.c:924 Read of size 4 at addr ffff88807e0ddb1c by task syz-executor.0/18962 CPU: 2 PID: 18962 Comm: syz-executor.0 Not tainted 5.10.45-rc1+ #3 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS ... Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x137/0x1be lib/dump_stack.c:118 print_address_description+0x6c/0x640 mm/kasan/report.c:385 __kasan_report mm/kasan/report.c:545 [inline] kasan_report+0x13d/0x1e0 mm/kasan/report.c:562 fb_mode_is_equal+0x36e/0x5e0 drivers/video/fbdev/core/modedb.c:924 fbcon_mode_deleted+0x16a/0x220 drivers/video/fbdev/core/fbcon.c:2746 fb_set_var+0x1e1/0xdb0 drivers/video/fbdev/core/fbmem.c:975 do_fb_ioctl+0x4d9/0x6e0 drivers/video/fbdev/core/fbmem.c:1108 vfs_ioctl fs/ioctl.c:48 [inline] __do_sys_ioctl fs/ioctl.c:753 [inline] __se_sys_ioctl+0xfb/0x170 fs/ioctl.c:739 do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46 entry_SYSCALL_64_after_hwframe+0x44/0xa9 Freed by task 18960: kasan_save_stack mm/kasan/common.c:48 [inline] kasan_set_track+0x3d/0x70 mm/kasan/common.c:56 kasan_set_free_info+0x17/0x30 mm/kasan/generic.c:355 __kasan_slab_free+0x108/0x140 mm/kasan/common.c:422 slab_free_hook mm/slub.c:1541 [inline] slab_free_freelist_hook+0xd6/0x1a0 mm/slub.c:1574 slab_free mm/slub.c:3139 [inline] kfree+0xca/0x3d0 mm/slub.c:4121 fb_delete_videomode+0x56a/0x820 drivers/video/fbdev/core/modedb.c:1104 fb_set_var+0x1f3/0xdb0 drivers/video/fbdev/core/fbmem.c:978 do_fb_ioctl+0x4d9/0x6e0 drivers/video/fbdev/core/fbmem.c:1108 vfs_ioctl fs/ioctl.c:48 [inline] __do_sys_ioctl fs/ioctl.c:753 [inline] __se_sys_ioctl+0xfb/0x170 fs/ioctl.c:739 do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46 entry_SYSCALL_64_after_hwframe+0x44/0xa9
- Severity
- high
- Software
- Kernel
- Fixed in
- 5.13.4
- Published
- 2024-05-21
Affected versions
From: 5.13
Until: 5.13.4
Fixed in: 5.13.4
How to fix this CVE
Update your Linux kernel to version 5.13.4 or later to resolve this use-after-free vulnerability in the framebuffer memory management subsystem. The vulnerability allows a local attacker with low privileges to trigger a kernel panic or potentially execute arbitrary code by manipulating video mode deletion while modes are still in use. Prioritize this patch as it affects the core kernel's video subsystem with high severity.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Step 1: Check kernel version with `uname -r` — vulnerable if output shows 5.13.0 through 5.13.3
- Step 2: Verify framebuffer driver is loaded with `lsmod | grep -i fb` — presence of fbdev modules indicates potential exposure
- Step 3: Search for UAF patterns in kernel logs with `sudo dmesg | grep -i 'use-after-free\|kasan\|fbmem'` — look for KASAN warnings or modedb references
- Step 4: After patching, verify kernel version updated with `uname -r` and confirm it is 5.13.4 or later
FAQ
What is CVE-2021-47338?
This is a use-after-free vulnerability in the Linux kernel's framebuffer subsystem where video display modes are deleted without checking if they are still actively in use by the system, allowing local attackers to trigger memory corruption.
Is CVE-2021-47338 being actively exploited?
No, there are no public exploits available and CISA does not list this vulnerability on its known exploited vulnerabilities catalog, though the high CVSS score warrants timely patching.
What versions of Kernel are affected by CVE-2021-47338?
Linux kernel versions 5.13.0 through 5.13.3 are vulnerable; the fix was released in kernel 5.13.4 and later.
How do I check if my server is vulnerable to CVE-2021-47338?
Run `uname -r` and check if the output matches the pattern 5.13.[0-3]; if it does, your system is vulnerable and requires a kernel update.
Does Defensia detect CVE-2021-47338?
Yes — Defensia's CVE advisory scanner compares installed kernel package versions against the NVD database. If the Linux kernel is running on a monitored server, CVE-2021-47338 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/087bff9acd2ec6db3f61aceb3224bde90fe0f7f8
- https://git.kernel.org/stable/c/0af778269a522c988ef0b4188556aba97fb420cc
- https://git.kernel.org/stable/c/359311b85ebec7c07c3a08ae2f3def946cad33fa
- https://git.kernel.org/stable/c/d6e76469157d8f240e5dec6f8411aa8d306b1126
- https://git.kernel.org/stable/c/f193509afc7ff37a46862610c93b896044d5b693
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2021-47338. Free for 1 server.
Get started free