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