CVE-2026-53154
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
25/06/2026
Last modified:
07/07/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
mm/hugetlb: restore reservation on error in hugetlb folio copy paths<br />
<br />
Two sites in mm/hugetlb.c allocate a hugetlb folio via<br />
alloc_hugetlb_folio() (consuming a VMA reservation) and then call<br />
copy_user_large_folio(), which became int-returning in commit 1cb9dc4b475c<br />
("mm: hwpoison: support recovery from HugePage copy-on-write faults") and<br />
can now fail (e.g. -EHWPOISON on a hwpoisoned source page). On the<br />
failure path, folio_put() restores the global hugetlb pool count through<br />
free_huge_folio(), but the per-VMA reservation map entry is left marked<br />
consumed:<br />
<br />
- hugetlb_mfill_atomic_pte() resubmission path (UFFDIO_COPY)<br />
- copy_hugetlb_page_range() fork-time CoW path when<br />
hugetlb_try_dup_anon_rmap() fails (rare: pinned hugetlb anon<br />
folio under fork)<br />
<br />
User-visible effect: on UFFDIO_COPY into a private hugetlb VMA where the<br />
resubmission copy fails, the reservation for that address is leaked from<br />
the VMA&#39;s reserve map. A subsequent fault at the same address takes the<br />
no-reservation path, and under hugetlb pool pressure the task is SIGBUSed<br />
at an address it had previously reserved. The fork-time CoW path leaks<br />
the same way in the child VMA&#39;s reserve map, though it requires the much<br />
rarer combination of pinned hugetlb anon page + hwpoisoned source.<br />
<br />
Add the missing restore_reserve_on_error() call before folio_put() on both<br />
error paths.
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.4 (including) | 6.6.143 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.12.94 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (including) | 6.18.36 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (including) | 7.0.13 (excluding) |
| cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.1:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.1:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.1:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.1:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.1:rc6:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/40c81856e622a9dc59294a90d169ac07ea25b0b0
- https://git.kernel.org/stable/c/45e33d43243d71d089af42f5077b8213cee6610f
- https://git.kernel.org/stable/c/8d6e1dd3ad1340cd8b6d554b7aa93d8f0a1c6d38
- https://git.kernel.org/stable/c/c72469ac0f274bde3f0df60a4584e14a123d0aa6
- https://git.kernel.org/stable/c/e47bf16af3c45470ea32f2241fa69aefe0dd61bd



