CVE-2021-47449
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
22/05/2024
Last modified:
02/04/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
ice: fix locking for Tx timestamp tracking flush<br />
<br />
Commit 4dd0d5c33c3e ("ice: add lock around Tx timestamp tracker flush")<br />
added a lock around the Tx timestamp tracker flow which is used to<br />
cleanup any left over SKBs and prepare for device removal.<br />
<br />
This lock is problematic because it is being held around a call to<br />
ice_clear_phy_tstamp. The clear function takes a mutex to send a PHY<br />
write command to firmware. This could lead to a deadlock if the mutex<br />
actually sleeps, and causes the following warning on a kernel with<br />
preemption debugging enabled:<br />
<br />
[ 715.419426] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:573<br />
[ 715.427900] in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 3100, name: rmmod<br />
[ 715.435652] INFO: lockdep is turned off.<br />
[ 715.439591] Preemption disabled at:<br />
[ 715.439594] [] 0x0<br />
[ 715.446678] CPU: 52 PID: 3100 Comm: rmmod Tainted: G W OE 5.15.0-rc4+ #42 bdd7ec3018e725f159ca0d372ce8c2c0e784891c<br />
[ 715.458058] Hardware name: Intel Corporation S2600STQ/S2600STQ, BIOS SE5C620.86B.02.01.0010.010620200716 01/06/2020<br />
[ 715.468483] Call Trace:<br />
[ 715.470940] dump_stack_lvl+0x6a/0x9a<br />
[ 715.474613] ___might_sleep.cold+0x224/0x26a<br />
[ 715.478895] __mutex_lock+0xb3/0x1440<br />
[ 715.482569] ? stack_depot_save+0x378/0x500<br />
[ 715.486763] ? ice_sq_send_cmd+0x78/0x14c0 [ice 9a7e1ec00971c89ecd3fe0d4dc7da2b3786a421d]<br />
[ 715.494979] ? kfree+0xc1/0x520<br />
[ 715.498128] ? mutex_lock_io_nested+0x12a0/0x12a0<br />
[ 715.502837] ? kasan_set_free_info+0x20/0x30<br />
[ 715.507110] ? __kasan_slab_free+0x10b/0x140<br />
[ 715.511385] ? slab_free_freelist_hook+0xc7/0x220<br />
[ 715.516092] ? kfree+0xc1/0x520<br />
[ 715.519235] ? ice_deinit_lag+0x16c/0x220 [ice 9a7e1ec00971c89ecd3fe0d4dc7da2b3786a421d]<br />
[ 715.527359] ? ice_remove+0x1cf/0x6a0 [ice 9a7e1ec00971c89ecd3fe0d4dc7da2b3786a421d]<br />
[ 715.535133] ? pci_device_remove+0xab/0x1d0<br />
[ 715.539318] ? __device_release_driver+0x35b/0x690<br />
[ 715.544110] ? driver_detach+0x214/0x2f0<br />
[ 715.548035] ? bus_remove_driver+0x11d/0x2f0<br />
[ 715.552309] ? pci_unregister_driver+0x26/0x250<br />
[ 715.556840] ? ice_module_exit+0xc/0x2f [ice 9a7e1ec00971c89ecd3fe0d4dc7da2b3786a421d]<br />
[ 715.564799] ? __do_sys_delete_module.constprop.0+0x2d8/0x4e0<br />
[ 715.570554] ? do_syscall_64+0x3b/0x90<br />
[ 715.574303] ? entry_SYSCALL_64_after_hwframe+0x44/0xae<br />
[ 715.579529] ? start_flush_work+0x542/0x8f0<br />
[ 715.583719] ? ice_sq_send_cmd+0x78/0x14c0 [ice 9a7e1ec00971c89ecd3fe0d4dc7da2b3786a421d]<br />
[ 715.591923] ice_sq_send_cmd+0x78/0x14c0 [ice 9a7e1ec00971c89ecd3fe0d4dc7da2b3786a421d]<br />
[ 715.599960] ? wait_for_completion_io+0x250/0x250<br />
[ 715.604662] ? lock_acquire+0x196/0x200<br />
[ 715.608504] ? do_raw_spin_trylock+0xa5/0x160<br />
[ 715.612864] ice_sbq_rw_reg+0x1e6/0x2f0 [ice 9a7e1ec00971c89ecd3fe0d4dc7da2b3786a421d]<br />
[ 715.620813] ? ice_reset+0x130/0x130 [ice 9a7e1ec00971c89ecd3fe0d4dc7da2b3786a421d]<br />
[ 715.628497] ? __debug_check_no_obj_freed+0x1e8/0x3c0<br />
[ 715.633550] ? trace_hardirqs_on+0x1c/0x130<br />
[ 715.637748] ice_write_phy_reg_e810+0x70/0xf0 [ice 9a7e1ec00971c89ecd3fe0d4dc7da2b3786a421d]<br />
[ 715.646220] ? do_raw_spin_trylock+0xa5/0x160<br />
[ 715.650581] ? ice_ptp_release+0x910/0x910 [ice 9a7e1ec00971c89ecd3fe0d4dc7da2b3786a421d]<br />
[ 715.658797] ? ice_ptp_release+0x255/0x910 [ice 9a7e1ec00971c89ecd3fe0d4dc7da2b3786a421d]<br />
[ 715.667013] ice_clear_phy_tstamp+0x2c/0x110 [ice 9a7e1ec00971c89ecd3fe0d4dc7da2b3786a421d]<br />
[ 715.675403] ice_ptp_release+0x408/0x910 [ice 9a7e1ec00971c89ecd3fe0d4dc7da2b3786a421d]<br />
[ 715.683440] ice_remove+0x560/0x6a0 [ice 9a7e1ec00971c89ecd3fe0d4dc7da2b3786a421d]<br />
[ 715.691037] ? _raw_spin_unlock_irqrestore+0x46/0x73<br />
[ 715.696005] pci_device_remove+0xab/0x1d0<br />
[ 715.700018] __device_release_driver+0x35b/0x690<br />
[ 715.704637] driver_detach+0x214/0x2f0<br />
[ 715.708389] bus_remove_driver+0x11d/0x2f0<br />
[ 715.712489] pci_unregister_driver+0x26/0x250<br />
[ 71<br />
---truncated---
Impact
Base Score 3.x
7.10
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.14.4 (including) | 5.14.14 (excluding) |
To consult the complete list of CPE names with products and versions, see this page



