In the Linux kernel, the following vulnerability has been resolved:
virtio_net: Do not send RSS key if it is not supported
There is a bug when setting the RSS options in virtio_net that can break the whole machine, getting the kernel into an infinite loop.
Running the following command in any QEMU virtual machine with virtionet will reproduce this problem:
# ethtool -X eth0 hfunc toeplitz
This is how the problem happens:
1) ethtool_set_rxfh() calls virtnet_set_rxfh()
2) virtnet_set_rxfh() calls virtnet_commit_rss_command()
3) virtnet_commit_rss_command() populates 4 entries for the rss scatter-gather
4) Since the command above does not have a key, then the last scatter-gatter entry will be zeroed, since rss_key_size == 0. sg_buf_size = vi->rss_key_size;
5) This buffer is passed to qemu, but qemu is not happy with a buffer with zero length, and do the following in virtqueue_map_desc() (QEMU function):
if (!sz) { virtio_error(vdev, "virtio: zero sized buffers are not allowed");
6) virtio_error() (also QEMU function) set the device as broken
vdev->broken = true;
7) Qemu bails out, and do not repond this crazy kernel.
8) The kernel is waiting for the response to come back (function virtnet_send_command())
9) The kernel is waiting doing the following :
while (!virtqueue_get_buf(vi->cvq, &tmp) && !virtqueue_is_broken(vi->cvq)) cpu_relax();
10) None of the following functions above is true, thus, the kernel loops here forever. Keeping in mind that virtqueue_is_broken() does not look at the qemu `vdev->broken`, so, it never realizes that the vitio is broken at QEMU side.
Fix it by not sending RSS commands if the feature is not available in the device.
CVSS Details
- CVSS 3.1 Base Score: 5.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade kernel-headersUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-modules-extraUpgrade python3-perfUpgrade kernel-tools-debuginfoUpgrade kernel-debuginfoUpgrade kernel-tools-develUpgrade kernelUpgrade kernel-libbpf-develUpgrade perf-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-libbpfUpgrade kernel-modules-extra-commonUpgrade perfUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-toolsUpgrade python3-perf-debuginfoUpgrade bpftoolUpgrade kernel-livepatch-6.1.90-99.173Upgrade kernel-libbpf-staticUpgrade kernel-devel | Jun 11, 2025 | May 20, 2024 |
| Debian | — | Upgrade linux | Jul 30, 2024 | May 20, 2024 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | May 20, 2024 |
| Suse | — | Upgrade kernel-rt-extraUpgrade kernel-azure-develUpgrade kernel-rtUpgrade kernel-sourceUpgrade kernel-syms-azureUpgrade reiserfs-kmp-azureUpgrade kernel-macrosUpgrade kernel-debug-vdsoUpgrade dlm-kmp-64kbUpgrade dtb-amlogicUpgrade dtb-xilinxUpgrade kernel-default-base-rebuildUpgrade dtb-qcomUpgrade kernel-kvmsmallUpgrade cluster-md-kmp-azureUpgrade dtb-alteraUpgrade dtb-nvidiaUpgrade kernel-obs-qaUpgrade kernel-rt-vdsoUpgrade dtb-allwinnerUpgrade kernel-devel-rtUpgrade gfs2-kmp-azureUpgrade kernel-default-vdsoUpgrade kernel-devel-azureUpgrade ocfs2-kmp-rtUpgrade kernel-azure-livepatch-develUpgrade gfs2-kmp-rtUpgrade dtb-caviumUpgrade dtb-exynosUpgrade dtb-rockchipUpgrade dtb-mediatekUpgrade cluster-md-kmp-rtUpgrade dtb-armUpgrade kernel-azure-optionalUpgrade kernel-source-vanillaUpgrade kselftests-kmp-64kbUpgrade kernel-default-extraUpgrade kernel-default-optionalUpgrade kernel-zfcpdumpUpgrade kernel-rt-develUpgrade ocfs2-kmp-defaultUpgrade dtb-apmUpgrade kernel-azureUpgrade kernel-develUpgrade dtb-lgUpgrade kernel-rt_debug-develUpgrade kernel-kvmsmall-develUpgrade kernel-source-azureUpgrade kernel-obs-buildUpgrade kernel-rt_debug-vdsoUpgrade reiserfs-kmp-rtUpgrade dtb-hisiliconUpgrade dtb-socionextUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-source-rtUpgrade kernel-debug-develUpgrade kernel-azure-extraUpgrade kernel-64kb-livepatch-develUpgrade kernel-64kbUpgrade dtb-marvellUpgrade dtb-amdUpgrade kernel-debugUpgrade kernel-default-develUpgrade gfs2-kmp-64kbUpgrade kselftests-kmp-rtUpgrade reiserfs-kmp-defaultUpgrade kernel-rt_debugUpgrade gfs2-kmp-defaultUpgrade cluster-md-kmp-64kbUpgrade kernel-rt-livepatch-develUpgrade kernel-kvmsmall-vdsoUpgrade kernel-defaultUpgrade dtb-freescaleUpgrade kernel-rt-optionalUpgrade kernel-default-livepatchUpgrade kernel-default-baseUpgrade kernel-64kb-extraUpgrade dtb-appleUpgrade dlm-kmp-rtUpgrade kselftests-kmp-azureUpgrade kselftests-kmp-defaultUpgrade kernel-docsUpgrade kernel-default-livepatch-develUpgrade kernel-syms-rtUpgrade kernel-64kb-optionalUpgrade kernel-64kb-develUpgrade reiserfs-kmp-64kbUpgrade cluster-md-kmp-defaultUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-debug-livepatch-develUpgrade dlm-kmp-azureUpgrade kernel-azure-vdsoUpgrade kernel-docs-htmlUpgrade ocfs2-kmp-azureUpgrade ocfs2-kmp-64kbUpgrade kernel-symsUpgrade dtb-sprdUpgrade dtb-renesasUpgrade dtb-broadcomUpgrade dtb-amazonUpgrade dlm-kmp-default | Jun 24, 2024 | May 20, 2024 |
| Ubuntu | — | Upgrade linux-image-ibmUpgrade linux-image-6.8.0-1009-nvidiaUpgrade linux-image-genericUpgrade linux-image-lowlatencyUpgrade linux-image-oracle-64kUpgrade linux-image-6.8.0-1008-oracleUpgrade linux-image-intelUpgrade linux-image-generic-64kUpgrade linux-image-gcpUpgrade linux-image-nvidiaUpgrade linux-image-oem-24.04aUpgrade linux-image-6.8.0-1008-ibmUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-6.8.0-1008-oemUpgrade linux-image-oem-24.04Upgrade linux-image-azureUpgrade linux-image-raspiUpgrade linux-image-6.8.0-1009-nvidia-64kUpgrade linux-image-nvidia-64kUpgrade linux-image-6.8.0-38-genericUpgrade linux-image-6.8.0-1008-oracle-64kUpgrade linux-image-6.8.0-38-lowlatency-64kUpgrade linux-image-6.8.0-38-lowlatencyUpgrade linux-image-6.8.0-1010-azure-fdeUpgrade linux-image-6.8.0-1010-azureUpgrade linux-image-kvmUpgrade linux-image-gkeUpgrade linux-image-6.8.0-1007-raspiUpgrade linux-image-lowlatency-64kUpgrade linux-image-6.8.0-1006-gkeUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1007-intelUpgrade linux-image-6.8.0-1010-gcpUpgrade linux-image-6.8.0-38-generic-64kUpgrade linux-image-6.8.0-1011-awsUpgrade linux-image-azure-fdeUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-generic-lpaeUpgrade linux-image-awsUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-virtualUpgrade linux-image-oracleUpgrade linux-image-ibm-classic | Jul 12, 2024 | May 20, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 14, 2025 | May 20, 2024 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub