mm/swapfile: skip HugeTLB pages for unuse_vma
I got a bad pud error and lost a 1GB HugeTLB when calling swapoff. The
problem can be reproduced by the following steps:
1. Allocate an anonymous 1GB HugeTLB and some other anonymous memory.
2. Swapout the above anonymous memory.
3. run swapoff and we will get a bad pud error in kernel message:
mm/pgtable-generic.c:42: bad pud 00000000743d215d(84000001400000e7)
We can tell that pud_clear_bad is called by pud_none_or_clear_bad in
unuse_pud_range() by ftrace. And therefore the HugeTLB pages will never
be freed because we lost it from page table. We can skip HugeTLB pages
for unuse_vma to fix it.
Metrics
Affected Vendors & Products
Source | ID | Title |
---|---|---|
![]() |
DLA-4008-1 | linux-6.1 security update |
![]() |
DLA-4075-1 | linux security update |
![]() |
USN-7276-1 | Linux kernel vulnerabilities |
![]() |
USN-7277-1 | Linux kernel vulnerabilities |
![]() |
USN-7288-1 | Linux kernel vulnerabilities |
![]() |
USN-7288-2 | Linux kernel vulnerabilities |
![]() |
USN-7289-1 | Linux kernel vulnerabilities |
![]() |
USN-7289-2 | Linux kernel vulnerabilities |
![]() |
USN-7289-3 | Linux kernel vulnerabilities |
![]() |
USN-7289-4 | Linux kernel vulnerabilities |
![]() |
USN-7291-1 | Linux kernel vulnerabilities |
![]() |
USN-7293-1 | Linux kernel vulnerabilities |
![]() |
USN-7294-1 | Linux kernel vulnerabilities |
![]() |
USN-7294-2 | Linux kernel vulnerabilities |
![]() |
USN-7294-3 | Linux kernel vulnerabilities |
![]() |
USN-7294-4 | Linux kernel vulnerabilities |
![]() |
USN-7295-1 | Linux kernel vulnerabilities |
![]() |
USN-7305-1 | Linux kernel vulnerabilities |
![]() |
USN-7308-1 | Linux kernel vulnerabilities |
![]() |
USN-7310-1 | Linux kernel vulnerabilities |
![]() |
USN-7331-1 | Linux kernel vulnerabilities |
![]() |
USN-7383-1 | Linux kernel vulnerabilities |
![]() |
USN-7383-2 | Linux kernel (Real-time) vulnerabilities |
![]() |
USN-7384-1 | Linux kernel (Azure) vulnerabilities |
![]() |
USN-7384-2 | Linux kernel (Azure) vulnerabilities |
![]() |
USN-7385-1 | Linux kernel (IBM) vulnerabilities |
![]() |
USN-7386-1 | Linux kernel (OEM) vulnerabilities |
![]() |
USN-7388-1 | Linux kernel vulnerabilities |
![]() |
USN-7389-1 | Linux kernel (NVIDIA Tegra) vulnerabilities |
![]() |
USN-7390-1 | Linux kernel (Xilinx ZynqMP) vulnerabilities |
![]() |
USN-7393-1 | Linux kernel (FIPS) vulnerabilities |
![]() |
USN-7401-1 | Linux kernel (AWS) vulnerabilities |
![]() |
USN-7403-1 | Linux kernel (HWE) vulnerabilities |
![]() |
USN-7413-1 | Linux kernel (IoT) vulnerabilities |
![]() |
USN-7451-1 | Linux kernel vulnerabilities |
![]() |
USN-7458-1 | Linux kernel (IBM) vulnerabilities |
![]() |
USN-7468-1 | Linux kernel (Azure, N-Series) vulnerabilities |
![]() |
USN-7523-1 | Linux kernel (Raspberry Pi Real-time) vulnerabilities |
![]() |
USN-7524-1 | Linux kernel (Raspberry Pi) vulnerabilities |
![]() |
USN-7539-1 | Linux kernel (Raspberry Pi) vulnerabilities |
![]() |
USN-7540-1 | Linux kernel (Raspberry Pi) vulnerabilities |
Solution
No solution given by the vendor.
Workaround
No workaround given by the vendor.
Wed, 08 Oct 2025 17:15:00 +0000
Type | Values Removed | Values Added |
---|---|---|
First Time appeared |
Linux
Linux linux Kernel |
|
Weaknesses | NVD-CWE-noinfo | |
CPEs | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:6.12:rc1:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:6.12:rc2:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:6.12:rc3:*:*:*:*:*:* |
|
Vendors & Products |
Linux
Linux linux Kernel |
Wed, 16 Jul 2025 13:45:00 +0000
Type | Values Removed | Values Added |
---|---|---|
Metrics |
epss
|
epss
|
Mon, 14 Jul 2025 13:45:00 +0000
Type | Values Removed | Values Added |
---|---|---|
Metrics |
epss
|
epss
|
Wed, 14 May 2025 02:30:00 +0000
Type | Values Removed | Values Added |
---|---|---|
First Time appeared |
Redhat
Redhat enterprise Linux |
|
CPEs | cpe:/a:redhat:enterprise_linux:9 cpe:/o:redhat:enterprise_linux:9 |
|
Vendors & Products |
Redhat
Redhat enterprise Linux |
Tue, 04 Mar 2025 06:30:00 +0000
Type | Values Removed | Values Added |
---|---|---|
Weaknesses | CWE-20 |
Fri, 22 Nov 2024 14:00:00 +0000
Type | Values Removed | Values Added |
---|---|---|
References |
| |
Metrics |
threat_severity
|
cvssV3_1
|
Fri, 08 Nov 2024 16:15:00 +0000
Type | Values Removed | Values Added |
---|---|---|
References |
|
Fri, 08 Nov 2024 06:00:00 +0000
Type | Values Removed | Values Added |
---|---|---|
Description | In the Linux kernel, the following vulnerability has been resolved: mm/swapfile: skip HugeTLB pages for unuse_vma I got a bad pud error and lost a 1GB HugeTLB when calling swapoff. The problem can be reproduced by the following steps: 1. Allocate an anonymous 1GB HugeTLB and some other anonymous memory. 2. Swapout the above anonymous memory. 3. run swapoff and we will get a bad pud error in kernel message: mm/pgtable-generic.c:42: bad pud 00000000743d215d(84000001400000e7) We can tell that pud_clear_bad is called by pud_none_or_clear_bad in unuse_pud_range() by ftrace. And therefore the HugeTLB pages will never be freed because we lost it from page table. We can skip HugeTLB pages for unuse_vma to fix it. | |
Title | mm/swapfile: skip HugeTLB pages for unuse_vma | |
References |
|
|

Status: PUBLISHED
Assigner: Linux
Published:
Updated: 2025-05-04T09:48:32.285Z
Reserved: 2024-10-21T19:36:19.969Z
Link: CVE-2024-50199

No data.

Status : Analyzed
Published: 2024-11-08T06:15:16.527
Modified: 2025-10-08T17:04:36.457
Link: CVE-2024-50199


No data.