CVE-2023-53659: In the Linux kernel, the following vulnerability has been resolved:  iavf: Fix out-of-bounds when setting channels on remove  If we set channels greater during iavf_remove(), and waiting reset done would be timeout, then returned with error but changed num_active_queues directly, that will lead to OOB like the following logs. Because the num_active_queues is greater than tx/rx_rings[] allocated actually.  Reproducer:    [root@host ~]# cat repro.sh   #!/bin/bash    pf_dbsf="0000:41:00.0"   vf0_dbsf="0000:41:02.0"   g_pids=()    function do_set_numvf()   {       echo 2 >/sys/bus/pci/devices/${pf_dbsf}/sriov_numvfs       sleep $((RANDOM%3+1))       echo 0 >/sys/bus/pci/devices/${pf_dbsf}/sriov_numvfs       sleep $((RANDOM%3+1))   }    function do_set_channel()   {       local nic=$(ls -1 --indicator-style=none /sys/bus/pci/devices/${vf0_dbsf}/net/)       [ -z "$nic" ] && { sleep $((RANDOM%3)) ; return 1; }       ifconfig $nic 192.168.18.5 netmask 255.255.255.0       ifconfig $nic up       ethtool -L $nic combined 1       ethtool -L $nic combined 4       sleep $((RANDOM%3))   }    function on_exit()   {       local pid       for pid in "${g_pids[@]}"; do           kill -0 "$pid" &>/dev/null && kill "$pid" &>/dev/null       done       g_pids=()   }    trap "on_exit; exit" EXIT    while :; do do_set_numvf ; done &   g_pids+=($!)   while :; do do_set_channel ; done &   g_pids+=($!)    wait  Result:  [ 3506.152887] iavf 0000:41:02.0: Removing device [ 3510.400799] ================================================================== [ 3510.400820] BUG: KASAN: slab-out-of-bounds in iavf_free_all_tx_resources+0x156/0x160 [iavf] [ 3510.400823] Read of size 8 at addr ffff88b6f9311008 by task repro.sh/55536 [ 3510.400823] [ 3510.400830] CPU: 101 PID: 55536 Comm: repro.sh Kdump: loaded Tainted: G           O     --------- -t - 4.18.0 #1 [ 3510.400832] Hardware name: Powerleader PR2008AL/H12DSi-N6, BIOS 2.0 04/09/2021 [ 3510.400835] Call Trace: [ 3510.400851]  dump_stack+0x71/0xab [ 3510.400860]  print_address_description+0x6b/0x290 [ 3510.400865]  ? iavf_free_all_tx_resources+0x156/0x160 [iavf] [ 3510.400868]  kasan_report+0x14a/0x2b0 [ 3510.400873]  iavf_free_all_tx_resources+0x156/0x160 [iavf] [ 3510.400880]  iavf_remove+0x2b6/0xc70 [iavf] [ 3510.400884]  ? iavf_free_all_rx_resources+0x160/0x160 [iavf] [ 3510.400891]  ? wait_woken+0x1d0/0x1d0 [ 3510.400895]  ? notifier_call_chain+0xc1/0x130 [ 3510.400903]  pci_device_remove+0xa8/0x1f0 [ 3510.400910]  device_release_driver_internal+0x1c6/0x460 [ 3510.400916]  pci_stop_bus_device+0x101/0x150 [ 3510.400919]  pci_stop_and_remove_bus_device+0xe/0x20 [ 3510.400924]  pci_iov_remove_virtfn+0x187/0x420 [ 3510.400927]  ? pci_iov_add_virtfn+0xe10/0xe10 [ 3510.400929]  ? pci_get_subsys+0x90/0x90 [ 3510.400932]  sriov_disable+0xed/0x3e0 [ 3510.400936]  ? bus_find_device+0x12d/0x1a0 [ 3510.400953]  i40e_free_vfs+0x754/0x1210 [i40e] [ 3510.400966]  ? i40e_reset_all_vfs+0x880/0x880 [i40e] [ 3510.400968]  ? pci_get_device+0x7c/0x90 [ 3510.400970]  ? pci_get_subsys+0x90/0x90 [ 3510.400982]  ? pci_vfs_assigned.part.7+0x144/0x210 [ 3510.400987]  ? __mutex_lock_slowpath+0x10/0x10 [ 3510.400996]  i40e_pci_sriov_configure+0x1fa/0x2e0 [i40e] [ 3510.401001]  sriov_numvfs_store+0x214/0x290 [ 3510.401005]  ? sriov_totalvfs_show+0x30/0x30 [ 3510.401007]  ? __mutex_lock_slowpath+0x10/0x10 [ 3510.401011]  ? __check_object_size+0x15a/0x350 [ 3510.401018]  kernfs_fop_write+0x280/0x3f0 [ 3510.401022]  vfs_write+0x145/0x440 [ 3510.401025]  ksys_write+0xab/0x160 [ 3510.401028]  ? __ia32_sys_read+0xb0/0xb0 [ 3510.401031]  ? fput_many+0x1a/0x120 [ 3510.401032]  ? filp_close+0xf0/0x130 [ 3510.401038]  do_syscall_64+0xa0/0x370 [ 3510.401041]  ? page_fault+0x8/0x30 [ 3510.401043]  entry_SYSCALL_64_after_hwframe+0x65/0xca [ 3510.401073] RIP: 0033:0x7f3a9bb842c0 [ 3510.401079] Code: 73 01 c3 48 8b 0d d8 cb 2c 00 f7 d8 64 89 01 48 83 c8 ff c3 66 0f 1f 44 00 00 83 3d 89 24 2d 00 00 75 10 b8 01 00 00 00 0f 05 <48> 3d  ---truncated---