CVE-2021-47375·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: blktrace: Fix uaf in blk_trace access after removing by sysfs There is an use-after-free problem triggered by following process: P1(sda) P2(sdb) echo 0 > /sys/block/sdb/trace/enable blk_trace_remove_queue synchronize_rcu blk_trace_free relay_close rcu_read_lock __blk_add_trace trace_note_tsk (Iterate running_trace_list) relay_close_buf relay_destroy_buf kfree(buf) trace_note(sdb's bt) relay_reserve buf->offset <- nullptr deference (use-after-free) !!! rcu_read_unlock [ 502.714379] BUG: kernel NULL pointer dereference, address: 0000000000000010 [ 502.715260] #PF: supervisor read access in kernel mode [ 502.715903] #PF: error_code(0x0000) - not-present page [ 502.716546] PGD 103984067 P4D 103984067 PUD 17592b067 PMD 0 [ 502.717252] Oops: 0000 [#1] SMP [ 502.720308] RIP: 0010:trace_note.isra.0+0x86/0x360 [ 502.732872] Call Trace: [ 502.733193] __blk_add_trace.cold+0x137/0x1a3 [ 502.733734] blk_add_trace_rq+0x7b/0xd0 [ 502.734207] blk_add_trace_rq_issue+0x54/0xa0 [ 502.734755] blk_mq_start_request+0xde/0x1b0 [ 502.735287] scsi_queue_rq+0x528/0x1140 ... [ 502.742704] sg_new_write.isra.0+0x16e/0x3e0 [ 502.747501] sg_ioctl+0x466/0x1100 Reproduce method: ioctl(/dev/sda, BLKTRACESETUP, blk_user_trace_setup[buf_size=127]) ioctl(/dev/sda, BLKTRACESTART) ioctl(/dev/sdb, BLKTRACESETUP, blk_user_trace_setup[buf_size=127]) ioctl(/dev/sdb, BLKTRACESTART) echo 0 > /sys/block/sdb/trace/enable & // Add delay(mdelay/msleep) before kernel enters blk_trace_free() ioctl$SG_IO(/dev/sda, SG_IO, ...) // Enters trace_note_tsk() after blk_trace_free() returned // Use mdelay in rcu region rather than msleep(which may schedule out) Remove blk_trace from running_list before calling blk_trace_free() by sysfs if blk_trace is at Blktrace_running state.
- Severity
- medium
- Software
- Kernel
- Fixed in
- 5.14.9
- Published
How likely is exploitation
FIRST's Exploit Prediction Scoring System puts the probability of this CVE being exploited in the next 30 days at <0.1% — in the bottom 1% of all published CVEs. EPSS is an independent forecast of exploitation, not a severity rating: it says nothing about how much damage a successful attack does, which is what a CVSS score measures.
Affected versions
From: 5.11
Until: 5.14.9
Fixed in: 5.14.9
How to fix this CVE
Update your Linux kernel to version 5.14.9 or later to resolve this use-after-free vulnerability in the blktrace subsystem. The vulnerability occurs when block device tracing is disabled via sysfs while trace operations are still in progress, leading to memory access violations. Systems running kernel versions 5.11 through 5.14.8 should prioritize this patch to prevent potential kernel crashes or information disclosure.
sudo dnf update kernelDefensia detects this vulnerability
How to check if you are affected
- Step 1: Check your kernel version with `uname -r` and verify if it falls within the vulnerable range (5.11.x to 5.14.8)
- Step 2: Verify blktrace is available on the system with `which blktrace` and check if it has been used by examining `/sys/kernel/debug/tracing/events/block/` directory
- Step 3: Search kernel logs for NULL pointer dereference errors referencing trace_note or relay_reserve: `sudo journalctl -b | grep -E '(NULL pointer|trace_note|relay_reserve)'`
- Step 4: After patching, confirm the new kernel version with `uname -r` and verify it is 5.14.9 or later, then reboot if necessary
FAQ
What is CVE-2021-47375?
CVE-2021-47375 is a use-after-free vulnerability in the Linux kernel's blktrace subsystem that occurs when block device tracing is disabled while concurrent trace operations are active, potentially causing kernel crashes or memory corruption.
Is CVE-2021-47375 being actively exploited?
No, this vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog and has no known public exploits, though it remains a medium-severity risk requiring patching.
What versions of Kernel are affected by CVE-2021-47375?
Linux kernel versions 5.11.0 through 5.14.8 are affected; version 5.14.9 and later contain the fix.
How do I check if my server is vulnerable to CVE-2021-47375?
Run `uname -r` to display your kernel version; if it reports 5.11.x through 5.14.8, your system is vulnerable and requires updating to 5.14.9 or later.
Does Defensia detect CVE-2021-47375?
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-2021-47375 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/3815fe7371d2411ce164281cef40d9fc7b323dee
- https://git.kernel.org/stable/c/488da313edf3abea7f7733efe011c96b23740ab5
- https://git.kernel.org/stable/c/5afedf670caf30a2b5a52da96eb7eac7dee6a9c9
- https://git.kernel.org/stable/c/677e362ba807f3aafe6f405c07e0b37244da5222
- https://git.kernel.org/stable/c/a5f8e86192612d0183047448d8bbe7918b3f1a26
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2021-47375. Free for 1 server.
Get started free