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-tools-debuginfoUpgrade kernel-modules-extraUpgrade kernel-debuginfo-common-x86_64Upgrade kernelUpgrade kernel-libbpf-develUpgrade kernel-debuginfoUpgrade kernel-headersUpgrade perf-debuginfoUpgrade python3-perfUpgrade kernel-tools-develUpgrade kernel-libbpfUpgrade bpftool-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-toolsUpgrade kernel-develUpgrade python3-perf-debuginfoUpgrade kernel-libbpf-staticUpgrade kernel-modules-extra-commonUpgrade bpftoolUpgrade kernel-livepatch-6.1.90-99.173Upgrade perf | 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 dtb-amlogicUpgrade dlm-kmp-64kbUpgrade kernel-rtUpgrade dtb-allwinnerUpgrade kernel-macrosUpgrade kernel-syms-azureUpgrade kernel-rt-extraUpgrade kernel-azure-develUpgrade kernel-default-vdsoUpgrade kernel-devel-azureUpgrade kernel-azure-optionalUpgrade dtb-exynosUpgrade kernel-rt-develUpgrade dtb-apmUpgrade ocfs2-kmp-rtUpgrade kernel-azure-livepatch-develUpgrade cluster-md-kmp-azureUpgrade kernel-obs-buildUpgrade dtb-xilinxUpgrade kernel-default-base-rebuildUpgrade dtb-qcomUpgrade kernel-kvmsmallUpgrade gfs2-kmp-azureUpgrade dtb-nvidiaUpgrade kernel-obs-qaUpgrade reiserfs-kmp-azureUpgrade cluster-md-kmp-rtUpgrade kselftests-kmp-64kbUpgrade kernel-default-optionalUpgrade dtb-mediatekUpgrade kernel-default-extraUpgrade kernel-kvmsmall-develUpgrade kernel-source-vanillaUpgrade kernel-sourceUpgrade dtb-armUpgrade dtb-caviumUpgrade gfs2-kmp-rtUpgrade kernel-zfcpdumpUpgrade dtb-alteraUpgrade kernel-debug-vdsoUpgrade kernel-devel-rtUpgrade kernel-source-azureUpgrade ocfs2-kmp-defaultUpgrade dtb-lgUpgrade kernel-rt-vdsoUpgrade kernel-develUpgrade dtb-rockchipUpgrade kernel-rt_debug-develUpgrade kernel-azureUpgrade kernel-azure-vdsoUpgrade kernel-default-develUpgrade ocfs2-kmp-64kbUpgrade kernel-docs-htmlUpgrade dlm-kmp-azureUpgrade cluster-md-kmp-64kbUpgrade kernel-rt-livepatch-develUpgrade kernel-kvmsmall-vdsoUpgrade kernel-debugUpgrade dtb-marvellUpgrade kernel-64kb-livepatch-develUpgrade dtb-amdUpgrade kernel-azure-extraUpgrade kernel-64kbUpgrade ocfs2-kmp-azureUpgrade kernel-symsUpgrade kernel-rt_debugUpgrade dtb-socionextUpgrade dtb-hisiliconUpgrade reiserfs-kmp-rtUpgrade reiserfs-kmp-defaultUpgrade kselftests-kmp-rtUpgrade kernel-kvmsmall-livepatch-develUpgrade gfs2-kmp-64kbUpgrade kernel-rt_debug-vdsoUpgrade kselftests-kmp-azureUpgrade kernel-syms-rtUpgrade kernel-64kb-optionalUpgrade kselftests-kmp-defaultUpgrade kernel-default-livepatchUpgrade kernel-64kb-develUpgrade kernel-rt-optionalUpgrade kernel-default-livepatch-develUpgrade kernel-64kb-extraUpgrade dtb-sprdUpgrade dtb-renesasUpgrade dtb-amazonUpgrade dlm-kmp-defaultUpgrade kernel-source-rtUpgrade dtb-appleUpgrade dlm-kmp-rtUpgrade kernel-default-baseUpgrade dtb-broadcomUpgrade kernel-debug-develUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-debug-livepatch-develUpgrade cluster-md-kmp-defaultUpgrade reiserfs-kmp-64kbUpgrade kernel-docsUpgrade kernel-defaultUpgrade gfs2-kmp-defaultUpgrade dtb-freescale | Jun 24, 2024 | May 20, 2024 |
| Ubuntu | — | Upgrade linux-image-nvidiaUpgrade linux-image-ibmUpgrade linux-image-oem-24.04aUpgrade linux-image-6.8.0-1008-oemUpgrade linux-image-genericUpgrade linux-image-nvidia-64kUpgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-1009-nvidiaUpgrade linux-image-azureUpgrade linux-image-gcpUpgrade linux-image-6.8.0-1008-ibmUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-generic-64kUpgrade linux-image-raspiUpgrade linux-image-oem-24.04Upgrade linux-image-6.8.0-38-genericUpgrade linux-image-oracle-64kUpgrade linux-image-intelUpgrade linux-image-6.8.0-1008-oracleUpgrade linux-image-6.8.0-1009-nvidia-64kUpgrade linux-image-virtualUpgrade linux-image-6.8.0-38-generic-64kUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-38-lowlatencyUpgrade linux-image-6.8.0-1008-oracle-64kUpgrade linux-image-lowlatency-64kUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oracleUpgrade linux-image-6.8.0-1006-gkeUpgrade linux-image-ibm-classicUpgrade linux-image-6.8.0-1007-raspiUpgrade linux-image-gkeUpgrade linux-image-6.8.0-38-lowlatency-64kUpgrade linux-image-kvmUpgrade linux-image-6.8.0-1010-azure-fdeUpgrade linux-image-6.8.0-1010-azureUpgrade linux-image-awsUpgrade linux-image-6.8.0-1011-awsUpgrade linux-image-6.8.0-1007-intelUpgrade linux-image-6.8.0-1010-gcpUpgrade linux-image-generic-lpaeUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-azure-fde | 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