In the Linux kernel, the following vulnerability has been resolved:
mm/page_reporting: use system_freezable_wq to fix UAF during suspend
During PM freeze (e.g. S3 suspend or S4 hibernation), device drivers like virtio_balloon reset their underlying virtio devices and delete their virtqueues via vdev->config->del_vqs().
However, page reporting work (page_reporting_process) was scheduled on the global system_wq. Because system_wq lacks the WQ_FREEZABLE flag, the PM freezer skips it, leaving page_reporting_process active during suspend.
If pages are freed into the buddy allocator while suspending (for example, when core MM invokes the balloon shrinker during S4 hibernation image saving), page reporting triggers virtballoon_free_page_report() on deleted virtqueues, resulting in a Use-After-Free / General Protection Fault:
[ 196.795226] general protection fault, probably for non-canonical address 0xaa1436fe70dae6df: 0000 [#1] SMP NOPTI [ 196.825967] Workqueue: events page_reporting_process [ 196.831038] RIP: 0010:virtqueue_add_split+0x233/0x4c0 [virtio_ring] [ 196.927073] virtballoon_free_page_report+0x3a/0xe0 [virtio_balloon] [ 196.946943] page_reporting_process+0x370/0x4f0
Fix this by switching page reporting work to system_freezable_wq. This ensures that the PM freezer pauses page_reporting_process before device drivers destroy their reporting virtqueues. Because the reporting worker is frozen, memory reclamation/freeing (e.g. via shrinker execution) can safely return pages to MM during freeze without triggering unfrozen reporting work on deleted virtqueues.
This aligns with the driver's existing design. The comment in virtballoon_freeze() states: /* * The workqueue is already frozen by the PM core before this * function is called. */
Testing: I have verified these fixes using Google’s virtualization infrastructure by running continuous suspend/resume iterations (40+ cycles) while churning memory using stress-ng (`stress-ng --vm 4 --vm-bytes 60% --timeout 1`) to constantly create free pages for the buddy allocator. We also set the `page_reporting_order` parameter to 0 to make the page reporting worker highly sensitive, forcing it to pick up any 4K free pages. This confirmed that the UAF crashes are no longer reproducible.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade kernel6.18-toolsUpgrade perf6.18-debuginfoUpgrade python3-perf6.12Upgrade bpftool6.12Upgrade bpftool6.12-debuginfoUpgrade kernel6.12-debuginfoUpgrade kernel6.12Upgrade kernel6.18-modules-extraUpgrade python3-perf6.18-debuginfoUpgrade perf6.18Upgrade python3-perf6.18Upgrade kernel6.12-modules-extraUpgrade kernel-livepatch-6.18.44-99.149Upgrade perf6.12Upgrade kernel6.12-debuginfo-common-x86_64Upgrade bpftool6.18-debuginfoUpgrade kernel6.18-tools-debuginfoUpgrade kernel6.18-debuginfoUpgrade kernel6.12-modules-extra-commonUpgrade kernel6.12-toolsUpgrade kernel6.18-debuginfo-common-aarch64Upgrade bpftool6.18Upgrade kernel6.12-tools-develUpgrade kernel6.12-debuginfo-common-aarch64Upgrade microvm-kernel6.18Upgrade kernel6.18-modules-extra-commonUpgrade kernel6.12-tools-debuginfoUpgrade perf6.12-debuginfoUpgrade kernel6.18-develUpgrade kernel6.12-headersUpgrade kernel6.18Upgrade kernel6.18-headersUpgrade kernel6.18-tools-develUpgrade kernel6.12-develUpgrade kernel6.18-debuginfo-common-x86_64Upgrade python3-perf6.12-debuginfoUpgrade kernel-livepatch-6.12.103-127.188 | Sep 1, 2026 | Aug 15, 2026 |
| Debian | — | Upgrade linuxUpgrade linux-6.12 | Aug 26, 2026 | Aug 26, 2026 |
| Redhat_linux | — | No solution exists | Aug 21, 2026 | Aug 15, 2026 |
| Ubuntu | — | Upgrade linux-image-5.15.0-1111-ibmUpgrade linux-image-ibm-5.15Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-genericUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-azure-fips-5.15Upgrade linux-image-lowlatency-64kUpgrade linux-image-6.8.0-1036-nvidia-tegraUpgrade linux-image-realtimeUpgrade linux-image-lowlatency-5.15Upgrade linux-image-aws-5.15Upgrade linux-image-fips-5.15Upgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-intel-iotg-5.15Upgrade linux-image-gkeopUpgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-5.15.0-1112-nvidia-lowlatencyUpgrade linux-image-kvm-5.15Upgrade linux-image-5.15.0-1114-oracleUpgrade linux-image-5.15.0-198-generic-64kUpgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-virtualUpgrade linux-image-5.15.0-198-generic-lpaeUpgrade linux-image-5.15.0-198-genericUpgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-oem-20.04dUpgrade linux-image-5.15.0-1117-aws-64kUpgrade linux-image-5.15.0-195-lowlatencyUpgrade linux-image-azure-cvmUpgrade linux-image-5.15.0-1118-gcp-fipsUpgrade linux-image-gkeUpgrade linux-image-5.15.0-1080-xilinx-zynqmpUpgrade linux-image-intel-iotgUpgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-intelUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-virtual-5.15Upgrade linux-image-oem-20.04Upgrade linux-image-5.15.0-1109-kvmUpgrade linux-image-5.15.0-1116-realtimeUpgrade linux-image-5.15.0-1100-gkeopUpgrade linux-image-5.15.0-1118-gcpUpgrade linux-image-gcpUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-generic-lpae-5.15Upgrade linux-image-5.15.0-1123-azureUpgrade linux-image-gkeop-5.15Upgrade linux-image-oracleUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-gcp-fipsUpgrade linux-image-ibmUpgrade linux-image-azure-fdeUpgrade linux-image-oem-20.04bUpgrade linux-image-gke-5.15Upgrade linux-image-aws-lts-22.04Upgrade linux-image-generic-lpaeUpgrade linux-image-azure-fipsUpgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-nvidiaUpgrade linux-image-5.15.0-195-lowlatency-64kUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-aws-64k-5.15Upgrade linux-image-oracle-5.15Upgrade linux-image-nvidia-tegra-rtUpgrade linux-image-gcp-fips-5.15Upgrade linux-image-fipsUpgrade linux-image-5.15.0-1112-intel-iotgUpgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-azure-fde-5.15Upgrade linux-image-aws-fipsUpgrade linux-image-generic-64kUpgrade linux-image-gcp-5.15Upgrade linux-image-5.15.0-1123-azure-fipsUpgrade linux-image-5.15.0-1117-awsUpgrade linux-image-5.15.0-1109-intel-iot-realtimeUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-6.8.0-1036-nvidia-tegra-rtUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-kvmUpgrade linux-image-generic-64k-5.15Upgrade linux-image-azure-5.15Upgrade linux-image-awsUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-5.15.0-1112-nvidiaUpgrade linux-image-5.15.0-1117-aws-fipsUpgrade linux-image-realtime-5.15Upgrade linux-image-lowlatencyUpgrade linux-image-aws-fips-5.15Upgrade linux-image-azure-lts-22.04Upgrade linux-image-azureUpgrade linux-image-oem-20.04cUpgrade linux-image-nvidia-5.15Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-generic-5.15Upgrade linux-image-5.15.0-198-fipsUpgrade linux-image-5.15.0-1113-gkeUpgrade linux-image-nvidia-tegraUpgrade linux-image-5.15.0-1122-azure-fde | Oct 6, 2026 | Oct 6, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Aug 21, 2026 | Aug 15, 2026 |
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