Description
In the Linux kernel, the following vulnerability has been resolved:

x86/efi: defer freeing of boot services memory

efi_free_boot_services() frees memory occupied by EFI_BOOT_SERVICES_CODE
and EFI_BOOT_SERVICES_DATA using memblock_free_late().

There are two issue with that: memblock_free_late() should be used for
memory allocated with memblock_alloc() while the memory reserved with
memblock_reserve() should be freed with free_reserved_area().

More acutely, with CONFIG_DEFERRED_STRUCT_PAGE_INIT=y
efi_free_boot_services() is called before deferred initialization of the
memory map is complete.

Benjamin Herrenschmidt reports that this causes a leak of ~140MB of
RAM on EC2 t3a.nano instances which only have 512MB or RAM.

If the freed memory resides in the areas that memory map for them is
still uninitialized, they won't be actually freed because
memblock_free_late() calls memblock_free_pages() and the latter skips
uninitialized pages.

Using free_reserved_area() at this point is also problematic because
__free_page() accesses the buddy of the freed page and that again might
end up in uninitialized part of the memory map.

Delaying the entire efi_free_boot_services() could be problematic
because in addition to freeing boot services memory it updates
efi.memmap without any synchronization and that's undesirable late in
boot when there is concurrency.

More robust approach is to only defer freeing of the EFI boot services
memory.

Split efi_free_boot_services() in two. First efi_unmap_boot_services()
collects ranges that should be freed into an array then
efi_free_boot_services() later frees them after deferred init is complete.
Published: 2026-03-25
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Memory Exhaustion
Action: Apply Patch
AI Analysis

Impact

The Linux kernel contains a flaw in the EFI boot services memory release routine, where allocated boot‑service memory is freed using memblock_free_late() instead of free_reserved_area(). This misuse can cause a leak of approximately 140 MB of RAM on systems with limited memory, such as EC2 t3a.nano instances, leading to memory exhaustion and potentially a system crash. The weakness is a Memory Management issue, classified as CWE‑763 (Memory Exhaustion).

Affected Systems

Any machine running the Linux kernel on an x86 system that utilizes UEFI boot services and has the CONFIG_DEFERRED_STRUCT_PAGE_INIT option enabled is affected. The CPE indicates the Linux kernel as the impacted product, but no specific kernel version is listed. The issue is inherent to the EFI subsystem of the kernel rather than a particular distribution.

Risk and Exploitability

The CVSS score of 5.5 indicates moderate severity, while the EPSS score of less than 1 % shows a very low projected exploitation probability. Based on the description, it is inferred that the vulnerability can only be exploited during the early boot phase, requiring local access to the machine’s boot process, and no remote attack vector is explicitly documented. Therefore, while the risk is limited to memory‑constrained environments, the bug can degrade performance or cause a denial of service once sufficient memory is consumed.

Generated by OpenCVE AI on March 26, 2026 at 04:30 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the kernel patch that splits efi_free_boot_services into efi_unmap_boot_services and efi_free_boot_services, resolving the memory leak.
  • If a patch cannot be applied immediately, temporarily disable the CONFIG_DEFERRED_STRUCT_PAGE_INIT kernel configuration option to avoid improper memory freeing during boot.
  • Monitor system memory usage during boot on low‑memory nodes to ensure boot services memory is released correctly.

Generated by OpenCVE AI on March 26, 2026 at 04:30 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 18 Apr 2026 09:15:00 +0000


Thu, 26 Mar 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-763
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Low


Wed, 25 Mar 2026 10:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: x86/efi: defer freeing of boot services memory efi_free_boot_services() frees memory occupied by EFI_BOOT_SERVICES_CODE and EFI_BOOT_SERVICES_DATA using memblock_free_late(). There are two issue with that: memblock_free_late() should be used for memory allocated with memblock_alloc() while the memory reserved with memblock_reserve() should be freed with free_reserved_area(). More acutely, with CONFIG_DEFERRED_STRUCT_PAGE_INIT=y efi_free_boot_services() is called before deferred initialization of the memory map is complete. Benjamin Herrenschmidt reports that this causes a leak of ~140MB of RAM on EC2 t3a.nano instances which only have 512MB or RAM. If the freed memory resides in the areas that memory map for them is still uninitialized, they won't be actually freed because memblock_free_late() calls memblock_free_pages() and the latter skips uninitialized pages. Using free_reserved_area() at this point is also problematic because __free_page() accesses the buddy of the freed page and that again might end up in uninitialized part of the memory map. Delaying the entire efi_free_boot_services() could be problematic because in addition to freeing boot services memory it updates efi.memmap without any synchronization and that's undesirable late in boot when there is concurrency. More robust approach is to only defer freeing of the EFI boot services memory. Split efi_free_boot_services() in two. First efi_unmap_boot_services() collects ranges that should be freed into an array then efi_free_boot_services() later frees them after deferred init is complete.
Title x86/efi: defer freeing of boot services memory
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-04-18T08:58:06.719Z

Reserved: 2026-01-13T15:37:46.000Z

Link: CVE-2026-23352

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-03-25T11:16:33.627

Modified: 2026-04-18T09:16:20.540

Link: CVE-2026-23352

cve-icon Redhat

Severity : Low

Publid Date: 2026-03-25T00:00:00Z

Links: CVE-2026-23352 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-03-26T12:16:05Z

Weaknesses