<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Mon, 28 Sep 2026 23:33:12 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-23352 — x86/efi: defer freeing of boot services memory</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-23352</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;x86/efi: defer freeing of boot services memory&lt;/p&gt;
&lt;p&gt;efi_free_boot_services() frees memory occupied by EFI_BOOT_SERVICES_CODE
and EFI_BOOT_SERVICES_DATA using memblock_free_late().&lt;/p&gt;
&lt;p&gt;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().&lt;/p&gt;
&lt;p&gt;More acutely, with CONFIG_DEFERRED_STRUCT_PAGE_INIT=y
efi_free_boot_services() is called before deferred initialization of the
memory map is complete.&lt;/p&gt;
&lt;p&gt;Benjamin Herrenschmidt reports that this causes a leak of ~140MB of
RAM on EC2 t3a.nano instances which only have 512MB or RAM.&lt;/p&gt;
&lt;p&gt;If the freed memory resides in the areas that memory map for them is
still uninitialized, they won&amp;#39;t be actually freed because
memblock_free_late() calls memblock_free_pages() and the latter skips
uninitialized pages.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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&amp;#39;s undesirable late in
boot when there is concurrency.&lt;/p&gt;
&lt;p&gt;More robust approach is to only defer freeing of the EFI boot services
memory.&lt;/p&gt;
&lt;p&gt;Split efi_free_boot_services() in two. First ef…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;x86/efi: defer freeing of boot services memory&lt;/p&gt;
&lt;p&gt;efi_free_boot_services() frees memory occupied by EFI_BOOT_SERVICES_CODE
and EFI_BOOT_SERVICES_DATA using memblock_free_late().&lt;/p&gt;
&lt;p&gt;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().&lt;/p&gt;
&lt;p&gt;More acutely, with CONFIG_DEFERRED_STRUCT_PAGE_INIT=y
efi_free_boot_services() is called before deferred initialization of the
memory map is complete.&lt;/p&gt;
&lt;p&gt;Benjamin Herrenschmidt reports that this causes a leak of ~140MB of
RAM on EC2 t3a.nano instances which only have 512MB or RAM.&lt;/p&gt;
&lt;p&gt;If the freed memory resides in the areas that memory map for them is
still uninitialized, they won&amp;#39;t be actually freed because
memblock_free_late() calls memblock_free_pages() and the latter skips
uninitialized pages.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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&amp;#39;s undesirable late in
boot when there is concurrency.&lt;/p&gt;
&lt;p&gt;More robust approach is to only defer freeing of the EFI boot services
memory.&lt;/p&gt;
&lt;p&gt;Split efi_free_boot_services() in two. First ef…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-23352</guid>
    </item>
  </channel>
</rss>
