CVE-2021-47393·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: hwmon: (mlxreg-fan) Return non-zero value when fan current state is enforced from sysfs Fan speed minimum can be enforced from sysfs. For example, setting current fan speed to 20 is used to enforce fan speed to be at 100% speed, 19 - to be not below 90% speed, etcetera. This feature provides ability to limit fan speed according to some system wise considerations, like absence of some replaceable units or high system ambient temperature. Request for changing fan minimum speed is configuration request and can be set only through 'sysfs' write procedure. In this situation value of argument 'state' is above nominal fan speed maximum. Return non-zero code in this case to avoid thermal_cooling_device_stats_update() call, because in this case statistics update violates thermal statistics table range. The issues is observed in case kernel is configured with option CONFIG_THERMAL_STATISTICS. Here is the trace from KASAN: [ 159.506659] BUG: KASAN: slab-out-of-bounds in thermal_cooling_device_stats_update+0x7d/0xb0 [ 159.516016] Read of size 4 at addr ffff888116163840 by task hw-management.s/7444 [ 159.545625] Call Trace: [ 159.548366] dump_stack+0x92/0xc1 [ 159.552084] ? thermal_cooling_device_stats_update+0x7d/0xb0 [ 159.635869] thermal_zone_device_update+0x345/0x780 [ 159.688711] thermal_zone_device_set_mode+0x7d/0xc0 [ 159.694174] mlxsw_thermal_modules_init+0x48f/0x590 [mlxsw_core] [ 159.700972] ? mlxsw_thermal_set_cur_state+0x5a0/0x5a0 [mlxsw_core] [ 159.731827] mlxsw_thermal_init+0x763/0x880 [mlxsw_core] [ 160.070233] RIP: 0033:0x7fd995909970 [ 160.074239] Code: 73 01 c3 48 8b 0d 28 d5 2b 00 f7 d8 64 89 01 48 83 c8 ff c3 66 0f 1f 44 00 00 83 3d 99 2d 2c 00 00 75 10 b8 01 00 00 00 0f 05 <48> 3d 01 f0 ff .. [ 160.095242] RSP: 002b:00007fff54f5d938 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 [ 160.103722] RAX: ffffffffffffffda RBX: 0000000000000013 RCX: 00007fd995909970 [ 160.111710] RDX: 0000000000000013 RSI: 0000000001906008 RDI: 0000000000000001 [ 160.119699] RBP: 0000000001906008 R08: 00007fd995bc9760 R09: 00007fd996210700 [ 160.127687] R10: 0000000000000073 R11: 0000000000000246 R12: 0000000000000013 [ 160.135673] R13: 0000000000000001 R14: 00007fd995bc8600 R15: 0000000000000013 [ 160.143671] [ 160.145338] Allocated by task 2924: [ 160.149242] kasan_save_stack+0x19/0x40 [ 160.153541] __kasan_kmalloc+0x7f/0xa0 [ 160.157743] __kmalloc+0x1a2/0x2b0 [ 160.161552] thermal_cooling_device_setup_sysfs+0xf9/0x1a0 [ 160.167687] __thermal_cooling_device_register+0x1b5/0x500 [ 160.173833] devm_thermal_of_cooling_device_register+0x60/0xa0 [ 160.180356] mlxreg_fan_probe+0x474/0x5e0 [mlxreg_fan] [ 160.248140] [ 160.249807] The buggy address belongs to the object at ffff888116163400 [ 160.249807] which belongs to the cache kmalloc-1k of size 1024 [ 160.263814] The buggy address is located 64 bytes to the right of [ 160.263814] 1024-byte region [ffff888116163400, ffff888116163800) [ 160.277536] The buggy address belongs to the page: [ 160.282898] page:0000000012275840 refcount:1 mapcount:0 mapping:0000000000000000 index:0xffff888116167000 pfn:0x116160 [ 160.294872] head:0000000012275840 order:3 compound_mapcount:0 compound_pincount:0 [ 160.303251] flags: 0x200000000010200(slab|head|node=0|zone=2) [ 160.309694] raw: 0200000000010200 ffffea00046f7208 ffffea0004928208 ffff88810004dbc0 [ 160.318367] raw: ffff888116167000 00000000000a0006 00000001ffffffff 0000000000000000 [ 160.327033] page dumped because: kasan: bad access detected [ 160.333270] [ 160.334937] Memory state around the buggy address: [ 160.356469] >ffff888116163800: fc ..
- Severity
- high
- Software
- Kernel
- Fixed in
- 5.14.10
- Published
- 2024-05-21
Affected versions
From: 5.11
Until: 5.14.10
Fixed in: 5.14.10
How to fix this CVE
Update your Linux kernel to version 5.14.10 or later to resolve this memory safety issue in the mlxreg-fan driver. This vulnerability causes a buffer overflow in thermal statistics tracking when fan speed enforcement is configured via sysfs, leading to potential kernel memory corruption. Patch your systems immediately, especially those running Mellanox thermal management or using CONFIG_THERMAL_STATISTICS.
sudo dnf update kernel kernel-devel && sudo rebootDefensia detects this vulnerability
How to check if you are affected
- Check installed kernel version: uname -r
- Verify if thermal statistics are enabled: grep CONFIG_THERMAL_STATISTICS /boot/config-$(uname -r)
- Check for mlxreg-fan driver presence: lsmod | grep mlxreg_fan
- Search system logs for KASAN memory errors: dmesg | grep -i 'KASAN.*thermal_cooling_device_stats_update'
- Verify kernel patch level: cat /proc/version | grep -o '5\.1[0-4]\.[0-9]\+'
- Confirm fix applied after reboot: uname -r (should show 5.14.10 or later)
FAQ
What is CVE-2021-47393?
A memory safety vulnerability in the Linux kernel's mlxreg-fan driver that causes a slab-out-of-bounds read when fan speed enforcement triggers thermal statistics updates with invalid state values, potentially leading to kernel crash or memory corruption.
Is CVE-2021-47393 being actively exploited?
No, this vulnerability is not listed on CISA's Known Exploited Vulnerabilities catalog and no public exploits are available. However, it can be triggered locally by authenticated users with sysfs write access.
What versions of Kernel are affected by CVE-2021-47393?
Linux kernel versions 5.11 through 5.14.9 are vulnerable. The fix was included starting with kernel 5.14.10.
How do I check if my server is vulnerable to CVE-2021-47393?
Run 'uname -r' and verify your kernel version is between 5.11 and 5.14.9. Also check 'grep CONFIG_THERMAL_STATISTICS /boot/config-$(uname -r)' — if set to 'y', your system is vulnerable if the kernel version matches the affected range.
Which hardware platforms are most affected by CVE-2021-47393?
Systems using Mellanox networking hardware with mlxreg-fan thermal management enabled are at highest risk, particularly those running Mellanox switch systems or network adapters with integrated thermal monitoring.
Does Defensia detect CVE-2021-47393?
Yes — Defensia's CVE advisory scanner compares installed kernel versions against the NVD database. If kernel 5.11-5.14.9 is detected on a monitored server, CVE-2021-47393 will appear in your dashboard with remediation steps and affected component details.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/5c6e0bce647d9cb32a17d58ffa669b3421fcc6ca
- https://git.kernel.org/stable/c/76bbb482d33bfcd7e9070ecf594c9ec73e01c930
- https://git.kernel.org/stable/c/a6c42ae1530f94724d3c42cf91fe3d3c5e394f8a
- https://git.kernel.org/stable/c/aa85fb7bde558bb2e364e85976b14b259c8b6fe8
- https://git.kernel.org/stable/c/e6fab7af6ba1bc77c78713a83876f60ca7a4a064
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2021-47393. Free for 1 server.
Get started free