In the Linux kernel, the following vulnerability has been resolved:
fs/inode: Prevent dump_mapping() accessing invalid dentry.d_name.name
It's observed that a crash occurs during hot-remove a memory device, in which user is accessing the hugetlb. See calltrace as following:
------------[ cut here ]------------ WARNING: CPU: 1 PID: 14045 at arch/x86/mm/fault.c:1278 do_user_addr_fault+0x2a0/0x790 Modules linked in: kmem device_dax cxl_mem cxl_pmem cxl_port cxl_pci dax_hmem dax_pmem nd_pmem cxl_acpi nd_btt cxl_core crc32c_intel nvme virtiofs fuse nvme_core nfit libnvdimm dm_multipath scsi_dh_rdac scsi_dh_emc s mirror dm_region_hash dm_log dm_mod CPU: 1 PID: 14045 Comm: daxctl Not tainted 6.10.0-rc2-lizhijian+ #492 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 RIP: 0010:do_user_addr_fault+0x2a0/0x790 Code: 48 8b 00 a8 04 0f 84 b5 fe ff ff e9 1c ff ff ff 4c 89 e9 4c 89 e2 be 01 00 00 00 bf 02 00 00 00 e8 b5 ef 24 00 e9 42 fe ff ff <0f> 0b 48 83 c4 08 4c 89 ea 48 89 ee 4c 89 e7 5b 5d 41 5c 41 5d 41 RSP: 0000:ffffc90000a575f0 EFLAGS: 00010046 RAX: ffff88800c303600 RBX: 0000000000000000 RCX: 0000000000000000 RDX: 0000000000001000 RSI: ffffffff82504162 RDI: ffffffff824b2c36 RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: ffffc90000a57658 R13: 0000000000001000 R14: ffff88800bc2e040 R15: 0000000000000000 FS: 00007f51cb57d880(0000) GS:ffff88807fd00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000001000 CR3: 00000000072e2004 CR4: 00000000001706f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: <TASK> ? __warn+0x8d/0x190 ? do_user_addr_fault+0x2a0/0x790 ? report_bug+0x1c3/0x1d0 ? handle_bug+0x3c/0x70 ? exc_invalid_op+0x14/0x70 ? asm_exc_invalid_op+0x16/0x20 ? do_user_addr_fault+0x2a0/0x790 ? exc_page_fault+0x31/0x200 exc_page_fault+0x68/0x200 <...snip...> BUG: unable to handle page fault for address: 0000000000001000 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 800000000ad92067 P4D 800000000ad92067 PUD 7677067 PMD 0 Oops: Oops: 0000 [#1] PREEMPT SMP PTI ---[ end trace 0000000000000000 ]--- BUG: unable to handle page fault for address: 0000000000001000 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 800000000ad92067 P4D 800000000ad92067 PUD 7677067 PMD 0 Oops: Oops: 0000 [#1] PREEMPT SMP PTI CPU: 1 PID: 14045 Comm: daxctl Kdump: loaded Tainted: G W 6.10.0-rc2-lizhijian+ #492 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 RIP: 0010:dentry_name+0x1f4/0x440 <...snip...> ? dentry_name+0x2fa/0x440 vsnprintf+0x1f3/0x4f0 vprintk_store+0x23a/0x540 vprintk_emit+0x6d/0x330 _printk+0x58/0x80 dump_mapping+0x10b/0x1a0 ? __pfx_free_object_rcu+0x10/0x10 __dump_page+0x26b/0x3e0 ? vprintk_emit+0xe0/0x330 ? _printk+0x58/0x80 ? dump_page+0x17/0x50 dump_page+0x17/0x50 do_migrate_range+0x2f7/0x7f0 ? do_migrate_range+0x42/0x7f0 ? offline_pages+0x2f4/0x8c0 offline_pages+0x60a/0x8c0 memory_subsys_offline+0x9f/0x1c0 ? lockdep_hardirqs_on+0x77/0x100 ? _raw_spin_unlock_irqrestore+0x38/0x60 device_offline+0xe3/0x110 state_store+0x6e/0xc0 kernfs_fop_write_iter+0x143/0x200 vfs_write+0x39f/0x560 ksys_write+0x65/0xf0 do_syscall_64+0x62/0x130
Previously, some sanity check have been done in dump_mapping() before the print facility parsing '%pd' though, it's still possible to run into an invalid dentry.d_name.name.
Since dump_mapping() only needs to dump the filename only, retrieve it by itself in a safer way to prevent an unnecessary crash.
Note that either retrieving the filename with '%pd' or strncpy_from_kernel_nofault(), the filename could be unreliable.
CVSS Details
- CVSS 3.1 Base Score: 7.1
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade bpftoolUpgrade kernel-livepatch-6.1.124-134.200Upgrade perf-debuginfoUpgrade perfUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-modules-extra-commonUpgrade python3-perf-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-toolsUpgrade kernel-tools-develUpgrade kernel-libbpfUpgrade kernel-debuginfoUpgrade kernel-develUpgrade kernel-tools-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade kernelUpgrade kernel-headersUpgrade kernel-libbpf-develUpgrade kernel-modules-extraUpgrade kernel-libbpf-staticUpgrade python3-perf | Feb 17, 2025 | Oct 21, 2024 |
| Debian | — | Upgrade linux-6.1Upgrade linux | Jan 13, 2025 | Oct 21, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-tools-libsUpgrade python3-perfUpgrade kernel-abi-stablelistsUpgrade kernelUpgrade bpftoolUpgrade kernel-tools | Feb 11, 2025 | Oct 21, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernel-tools-libsUpgrade kernelUpgrade kernel-toolsUpgrade bpftoolUpgrade python3-perfUpgrade kernel-abi-stablelists | Feb 11, 2025 | Oct 21, 2024 |
| Redhat_linux | — | Upgrade kernel-rtNo solution existsUpgrade kernel | May 15, 2025 | Oct 21, 2024 |
| Ubuntu | — | Upgrade linux-image-genericUpgrade linux-image-oem-24.04Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-generic-lpaeUpgrade linux-image-generic-64kUpgrade linux-image-6.8.0-1025-azure-fdeUpgrade linux-image-6.11.0-1009-gcpUpgrade linux-image-lowlatency-64kUpgrade linux-image-6.8.0-1020-oracle-64kUpgrade linux-image-nvidia-6.8Upgrade linux-image-6.11.0-1009-awsUpgrade linux-image-6.11.0-1009-azureUpgrade linux-image-oracleUpgrade linux-image-6.8.0-1022-nvidia-lowlatencyUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.11.0-1008-raspiUpgrade linux-image-6.8.0-1023-awsUpgrade linux-image-nvidiaUpgrade linux-image-6.8.0-57-genericUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-gkeUpgrade linux-image-6.11.0-1009-azure-fdeUpgrade linux-image-gkeopUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-gkeop-6.8Upgrade linux-image-oem-22.04dUpgrade linux-image-gcp-64kUpgrade linux-image-6.8.0-1022-nvidiaUpgrade linux-image-oem-24.04bUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-raspiUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1025-azureUpgrade linux-image-lowlatencyUpgrade linux-image-oem-22.04aUpgrade linux-image-6.11.0-18-generic-64kUpgrade linux-image-6.8.0-54-genericUpgrade linux-image-oem-22.04Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-54-lowlatency-64kUpgrade linux-image-ibmUpgrade linux-image-6.11.0-1011-oracleUpgrade linux-image-azure-fdeUpgrade linux-image-6.8.0-1019-gkeUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.8.0-54-generic-64kUpgrade linux-image-gcpUpgrade linux-image-6.8.0-1022-nvidia-lowlatency-64kUpgrade linux-image-6.11.0-18-genericUpgrade linux-image-6.11.0-1005-realtimeUpgrade linux-image-ibm-classicUpgrade linux-image-oem-24.04aUpgrade linux-image-oracle-64kUpgrade linux-image-6.11.0-1011-oracle-64kUpgrade linux-image-6.8.0-1006-gkeopUpgrade linux-image-virtualUpgrade linux-image-6.8.0-57-generic-64kUpgrade linux-image-6.8.0-54-lowlatencyUpgrade linux-image-kvmUpgrade linux-image-azure-lts-24.04Upgrade linux-image-6.8.0-1020-oracleUpgrade linux-image-6.8.0-1022-ibmUpgrade linux-image-6.11.0-1015-oemUpgrade linux-image-6.11.0-1010-lowlatency-64kUpgrade linux-image-6.8.0-1014-azure-nvidiaUpgrade linux-image-6.8.0-1024-gcp-64kUpgrade linux-image-6.11.0-1010-lowlatencyUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-realtime-hwe-24.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-oem-22.04cUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-realtimeUpgrade linux-image-azure-nvidiaUpgrade linux-image-6.8.0-1024-gcpUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-nvidia-64kUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-6.8.0-1019-raspiUpgrade linux-image-6.8.0-1024-oemUpgrade linux-image-aws-lts-24.04Upgrade linux-image-6.8.0-1022-nvidia-64kUpgrade linux-image-azureUpgrade linux-image-awsUpgrade linux-image-gcp-lts-24.04 | Feb 20, 2025 | Oct 21, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Sep 22, 2025 | Oct 21, 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