In the Linux kernel, the following vulnerability has been resolved:
mm: fix crashes from deferred split racing folio migration
Even on 6.10-rc6, I've been seeing elusive "Bad page state"s (often on flags when freeing, yet the flags shown are not bad: PG_locked had been set and cleared??), and VM_BUG_ON_PAGE(page_ref_count(page) == 0)s from deferred_split_scan()'s folio_put(), and a variety of other BUG and WARN symptoms implying double free by deferred split and large folio migration.
6.7 commit 9bcef5973e31 ("mm: memcg: fix split queue list crash when large folio migration") was right to fix the memcg-dependent locking broken in 85ce2c517ade ("memcontrol: only transfer the memcg data for migration"), but missed a subtlety of deferred_split_scan(): it moves folios to its own local list to work on them without split_queue_lock, during which time folio->_deferred_list is not empty, but even the "right" lock does nothing to secure the folio and the list it is on.
Fortunately, deferred_split_scan() is careful to use folio_try_get(): so folio_migrate_mapping() can avoid the race by folio_undo_large_rmappable() while the old folio's reference count is temporarily frozen to 0 - adding such a freeze in the !mapping case too (originally, folio lock and unmapping and no swap cache left an anon folio unreachable, so no freezing was needed there: but the deferred split queue offers a way to reach it).
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jul 27, 2026 | Jul 27, 2026 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | Aug 7, 2024 |
| Ubuntu | — | Upgrade linux-image-generic-64kUpgrade linux-image-gkeopUpgrade linux-image-oem-24.04aUpgrade linux-image-gkeUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-oem-22.04dUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-6.8.0-1017-nvidia-lowlatency-64kUpgrade linux-image-oracleUpgrade linux-image-oem-22.04Upgrade linux-image-genericUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-nvidia-6.8Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-oem-22.04cUpgrade linux-image-nvidia-64kUpgrade linux-image-gcpUpgrade linux-image-6.8.0-1015-oracleUpgrade linux-image-6.8.0-1016-gcpUpgrade linux-image-6.8.0-1014-ibmUpgrade linux-image-oracle-64kUpgrade linux-image-virtualUpgrade linux-image-6.8.0-1017-nvidia-lowlatencyUpgrade linux-image-nvidiaUpgrade linux-image-generic-lpaeUpgrade linux-image-lowlatency-64kUpgrade linux-image-6.8.0-1013-gkeUpgrade linux-image-oem-24.04Upgrade linux-image-6.8.0-48-lowlatency-64kUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1015-oracle-64kUpgrade linux-image-kvmUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1014-raspiUpgrade linux-image-6.8.0-1016-oemUpgrade linux-image-ibmUpgrade linux-image-6.8.0-1017-gcpUpgrade linux-image-6.8.0-1016-azureUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-raspiUpgrade linux-image-6.8.0-1017-azure-fdeUpgrade linux-image-6.8.0-1017-azureUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-gkeop-6.8Upgrade linux-image-6.8.0-48-genericUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-1018-awsUpgrade linux-image-6.8.0-1017-nvidia-64kUpgrade linux-image-awsUpgrade linux-image-6.8.0-1016-azure-fdeUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-lowlatencyUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.8.0-48-generic-64kUpgrade linux-image-azureUpgrade linux-image-azure-fdeUpgrade linux-image-6.8.0-48-lowlatencyUpgrade linux-image-ibm-classicUpgrade linux-image-6.8.0-1017-nvidiaUpgrade linux-image-oem-22.04aUpgrade linux-image-6.8.0-1002-gkeopUpgrade linux-image-generic-hwe-24.04 | Nov 4, 2024 | Aug 7, 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