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