In the Linux kernel, the following vulnerability has been resolved:
mm/hugetlb: fix DEBUG_LOCKS_WARN_ON(1) when dissolve_free_hugetlb_folio()
When I did memory failure tests recently, below warning occurs:
DEBUG_LOCKS_WARN_ON(1) WARNING: CPU: 8 PID: 1011 at kernel/locking/lockdep.c:232 __lock_acquire+0xccb/0x1ca0 Modules linked in: mce_inject hwpoison_inject CPU: 8 PID: 1011 Comm: bash Kdump: loaded Not tainted 6.9.0-rc3-next-20240410-00012-gdb69f219f4be #3 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org 04/01/2014 RIP: 0010:__lock_acquire+0xccb/0x1ca0 RSP: 0018:ffffa7a1c7fe3bd0 EFLAGS: 00000082 RAX: 0000000000000000 RBX: eb851eb853975fcf RCX: ffffa1ce5fc1c9c8 RDX: 00000000ffffffd8 RSI: 0000000000000027 RDI: ffffa1ce5fc1c9c0 RBP: ffffa1c6865d3280 R08: ffffffffb0f570a8 R09: 0000000000009ffb R10: 0000000000000286 R11: ffffffffb0f2ad50 R12: ffffa1c6865d3d10 R13: ffffa1c6865d3c70 R14: 0000000000000000 R15: 0000000000000004 FS: 00007ff9f32aa740(0000) GS:ffffa1ce5fc00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007ff9f3134ba0 CR3: 00000008484e4000 CR4: 00000000000006f0 Call Trace: <TASK> lock_acquire+0xbe/0x2d0 _raw_spin_lock_irqsave+0x3a/0x60 hugepage_subpool_put_pages.part.0+0xe/0xc0 free_huge_folio+0x253/0x3f0 dissolve_free_huge_page+0x147/0x210 __page_handle_poison+0x9/0x70 memory_failure+0x4e6/0x8c0 hard_offline_page_store+0x55/0xa0 kernfs_fop_write_iter+0x12c/0x1d0 vfs_write+0x380/0x540 ksys_write+0x64/0xe0 do_syscall_64+0xbc/0x1d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7ff9f3114887 RSP: 002b:00007ffecbacb458 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 000000000000000c RCX: 00007ff9f3114887 RDX: 000000000000000c RSI: 0000564494164e10 RDI: 0000000000000001 RBP: 0000564494164e10 R08: 00007ff9f31d1460 R09: 000000007fffffff R10: 0000000000000000 R11: 0000000000000246 R12: 000000000000000c R13: 00007ff9f321b780 R14: 00007ff9f3217600 R15: 00007ff9f3216a00 </TASK> Kernel panic - not syncing: kernel: panic_on_warn set ... CPU: 8 PID: 1011 Comm: bash Kdump: loaded Not tainted 6.9.0-rc3-next-20240410-00012-gdb69f219f4be #3 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org 04/01/2014 Call Trace: <TASK> panic+0x326/0x350 check_panic_on_warn+0x4f/0x50 __warn+0x98/0x190 report_bug+0x18e/0x1a0 handle_bug+0x3d/0x70 exc_invalid_op+0x18/0x70 asm_exc_invalid_op+0x1a/0x20 RIP: 0010:__lock_acquire+0xccb/0x1ca0 RSP: 0018:ffffa7a1c7fe3bd0 EFLAGS: 00000082 RAX: 0000000000000000 RBX: eb851eb853975fcf RCX: ffffa1ce5fc1c9c8 RDX: 00000000ffffffd8 RSI: 0000000000000027 RDI: ffffa1ce5fc1c9c0 RBP: ffffa1c6865d3280 R08: ffffffffb0f570a8 R09: 0000000000009ffb R10: 0000000000000286 R11: ffffffffb0f2ad50 R12: ffffa1c6865d3d10 R13: ffffa1c6865d3c70 R14: 0000000000000000 R15: 0000000000000004 lock_acquire+0xbe/0x2d0 _raw_spin_lock_irqsave+0x3a/0x60 hugepage_subpool_put_pages.part.0+0xe/0xc0 free_huge_folio+0x253/0x3f0 dissolve_free_huge_page+0x147/0x210 __page_handle_poison+0x9/0x70 memory_failure+0x4e6/0x8c0 hard_offline_page_store+0x55/0xa0 kernfs_fop_write_iter+0x12c/0x1d0 vfs_write+0x380/0x540 ksys_write+0x64/0xe0 do_syscall_64+0xbc/0x1d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7ff9f3114887 RSP: 002b:00007ffecbacb458 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 000000000000000c RCX: 00007ff9f3114887 RDX: 000000000000000c RSI: 0000564494164e10 RDI: 0000000000000001 RBP: 0000564494164e10 R08: 00007ff9f31d1460 R09: 000000007fffffff R10: 0000000000000000 R11: 0000000000000246 R12: 000000000000000c R13: 00007ff9f321b780 R14: 00007ff9f3217600 R15: 00007ff9f3216a00 </TASK>
After git bisecting and digging into the code, I believe the root cause is that _deferred_list field of folio is unioned with _hugetlb_subpool field. In __update_and_free_hugetlb_folio(), folio->_deferred_ ---truncated---
CVSS Details
- CVSS 3.1 Base Score: 4.7
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:H/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-livepatch-6.1.91-99.172Upgrade kernel-modules-extra-commonUpgrade perf-debuginfoUpgrade kernel-toolsUpgrade kernel-libbpf-staticUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-tools-develUpgrade kernel-libbpf-develUpgrade bpftool-debuginfoUpgrade kernelUpgrade kernel-tools-debuginfoUpgrade kernel-libbpfUpgrade kernel-debuginfoUpgrade perfUpgrade kernel-develUpgrade bpftoolUpgrade kernel-modules-extraUpgrade python3-perf-debuginfoUpgrade kernel-headersUpgrade kernel-debuginfo-common-aarch64Upgrade python3-perf | Feb 17, 2025 | May 30, 2024 |
| Debian | — | Upgrade linux | Jul 30, 2024 | May 30, 2024 |
| Oracle_linux | — | Upgrade kernel-uek | Nov 21, 2024 | May 30, 2024 |
| Redhat_linux | — | No solution existsUpgrade kernel-rtUpgrade kernel | Dec 5, 2024 | May 30, 2024 |
| Suse | — | Upgrade gfs2-kmp-defaultUpgrade kernel-default-livepatch-develUpgrade kernel-debug-vdsoUpgrade ocfs2-kmp-64kbUpgrade kselftests-kmp-azureUpgrade dtb-qcomUpgrade dlm-kmp-rtUpgrade dtb-sprdUpgrade kernel-azure-develUpgrade kernel-kvmsmall-vdsoUpgrade reiserfs-kmp-azureUpgrade kernel-source-vanillaUpgrade reiserfs-kmp-rtUpgrade kernel-defaultUpgrade kernel-default-baseUpgrade kernel-rt_debug-develUpgrade cluster-md-kmp-64kbUpgrade kernel-azureUpgrade ocfs2-kmp-azureUpgrade dtb-alteraUpgrade kernel-rt-optionalUpgrade dlm-kmp-defaultUpgrade kernel-rt-extraUpgrade dtb-socionextUpgrade kernel-docs-htmlUpgrade kernel-rtUpgrade ocfs2-kmp-defaultUpgrade kselftests-kmp-rtUpgrade kernel-64kb-extraUpgrade dtb-broadcomUpgrade kernel-azure-optionalUpgrade kernel-default-base-rebuildUpgrade kernel-obs-buildUpgrade dtb-rockchipUpgrade dtb-allwinnerUpgrade gfs2-kmp-azureUpgrade kernel-docsUpgrade kernel-rt-vdsoUpgrade reiserfs-kmp-64kbUpgrade dtb-caviumUpgrade dtb-nvidiaUpgrade kernel-source-rtUpgrade kernel-rt_debug-vdsoUpgrade kernel-rt_debugUpgrade kernel-64kbUpgrade dtb-appleUpgrade dtb-lgUpgrade kernel-default-livepatchUpgrade kernel-zfcpdumpUpgrade dtb-xilinxUpgrade dtb-mediatekUpgrade kernel-64kb-develUpgrade cluster-md-kmp-azureUpgrade kernel-obs-qaUpgrade kernel-azure-extraUpgrade kernel-symsUpgrade gfs2-kmp-64kbUpgrade ocfs2-kmp-rtUpgrade dtb-renesasUpgrade dtb-amazonUpgrade kselftests-kmp-defaultUpgrade kernel-source-azureUpgrade kernel-rt-livepatch-develUpgrade dtb-freescaleUpgrade dtb-amdUpgrade kernel-syms-rtUpgrade kernel-macrosUpgrade kernel-default-optionalUpgrade dtb-marvellUpgrade kernel-debug-develUpgrade kernel-64kb-optionalUpgrade kernel-default-develUpgrade kernel-kvmsmall-develUpgrade kernel-devel-rtUpgrade kernel-develUpgrade kernel-default-extraUpgrade gfs2-kmp-rtUpgrade dtb-hisiliconUpgrade dtb-exynosUpgrade dtb-apmUpgrade dlm-kmp-azureUpgrade cluster-md-kmp-rtUpgrade kernel-sourceUpgrade kernel-devel-azureUpgrade kernel-azure-vdsoUpgrade reiserfs-kmp-defaultUpgrade kernel-syms-azureUpgrade kernel-debugUpgrade dtb-amlogicUpgrade cluster-md-kmp-defaultUpgrade kselftests-kmp-64kbUpgrade kernel-kvmsmallUpgrade kernel-rt-develUpgrade dtb-armUpgrade kernel-default-vdsoUpgrade dlm-kmp-64kb | Dec 5, 2025 | Aug 18, 2025 |
| Ubuntu | — | Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.8.0-1008-gkeUpgrade linux-image-kvmUpgrade linux-image-ibmUpgrade linux-image-6.8.0-1010-oracle-64kUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1012-azureUpgrade linux-image-awsUpgrade linux-image-6.8.0-1011-nvidia-64kUpgrade linux-image-raspiUpgrade linux-image-azure-fdeUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1011-nvidia-lowlatencyUpgrade linux-image-6.8.0-1011-nvidiaUpgrade linux-image-6.8.0-40-generic-64kUpgrade linux-image-oracleUpgrade linux-image-6.8.0-1012-azure-fdeUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-ibm-classicUpgrade linux-image-6.8.0-1012-gcpUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1009-raspiUpgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-40-genericUpgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-1010-oracleUpgrade linux-image-lowlatency-64kUpgrade linux-image-virtualUpgrade linux-image-gcpUpgrade linux-image-generic-64kUpgrade linux-image-genericUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.8.0-1011-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1010-oemUpgrade linux-image-nvidiaUpgrade linux-image-gkeUpgrade linux-image-oem-24.04aUpgrade linux-image-6.8.0-40-lowlatency-64kUpgrade linux-image-oracle-64kUpgrade linux-image-6.8.0-40-lowlatencyUpgrade linux-image-oem-24.04Upgrade linux-image-azureUpgrade linux-image-nvidia-64kUpgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-1013-awsUpgrade linux-image-6.8.0-1010-ibm | Aug 9, 2024 | May 30, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 14, 2025 | May 30, 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