【活用ガイド】

JVNDB-2026-012961

LinuxのLinux Kernelにおける有効期限後のメモリの解放の欠如に関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。x86/efi: ブートサービスメモリの解放を延期します。efi_free_boot_services()はEFI_BOOT_SERVICES_CODEおよびEFI_BOOT_SERVICES_DATAによって占有されているメモリをmemblock_free_late()を使用して解放します。しかし、memblock_free_late()はmemblock_alloc()で割り当てられたメモリに対して使うべきであり、memblock_reserve()で予約されたメモリはfree_reserved_area()で解放すべきという問題がありました。さらに深刻なのは、CONFIG_DEFERRED_STRUCT_PAGE_INIT=yが設定されている場合、efi_free_boot_services()がメモリマップの遅延初期化が完了する前に呼び出される点です。Benjamin Herrenschmidtによると、これがEC2 t3a.nanoインスタンス(512MBのRAMしかない)で約140MBのRAMリークを引き起こします。解放対象のメモリがまだメモリマップが初期化されていない領域に存在する場合、memblock_free_late()はmemblock_free_pages()を呼び出し、その関数は未初期化のページをスキップするため、実際には解放されません。この段階でfree_reserved_area()を使うことも問題であり、__free_page()が解放されたページのバディにアクセスし、それが初期化されていないメモリマップの部分にある可能性があるためです。efi_free_boot_services()全体の延期は問題を引き起こす可能性があります。なぜなら、ブートサービスメモリの解放に加えてefi.memmapを更新しますが、その操作に同期がなく、ブート後期の並行処理がある時に望ましくないからです。より堅牢な方法としては、EFIブートサービスメモリの解放のみを延期することです。efi_free_boot_services()を二つに分割し、まずefi_unmap_boot_services()で解放すべき範囲を配列に収集し、その後efi_free_boot_services()で遅延初期化完了後に解放します。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 5.5 (警告) [NVD値]
  • 攻撃元区分: ローカル
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 低
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): なし
  • 完全性への影響(I): なし
  • 可用性への影響(A): 高
影響を受けるシステム


Linux
  • Linux Kernel 3.0.1 以上 5.10.253 未満
  • Linux Kernel 5.11 以上 5.15.203 未満
  • Linux Kernel 5.16 以上 6.1.167 未満
  • Linux Kernel 6.13 以上 6.18.17 未満
  • Linux Kernel 6.19 以上 6.19.7 未満
  • Linux Kernel 6.2 以上 6.6.130 未満
  • Linux Kernel 6.7 以上 6.12.77 未満
  • Linux Kernel 2.6.39.1
  • Linux Kernel 3.0
  • Linux Kernel 7.0

想定される影響

当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。
また、当該ソフトウェアが扱う情報について、書き換えは発生しません。
さらに、当該ソフトウェアが完全に停止する可能性があります。
そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。
対策

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。
ベンダ情報

CWEによる脆弱性タイプ一覧  CWEとは?

  1. 有効期限後のメモリの解放の欠如(CWE-401) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-23352
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-23352
  2. 関連文書 : x86/efi: defer freeing of boot services memory - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/f9e9cc320854a76a39e7bc92d144554f3a727fad)
  3. 関連文書 : x86/efi: defer freeing of boot services memory - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/a4b0bf6a40f3c107c67a24fbc614510ef5719980)
  4. 関連文書 : x86/efi: defer freeing of boot services memory - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/399da820ecfe6f4f10c143e5c453d3559a04db9c)
  5. 関連文書 : x86/efi: defer freeing of boot services memory - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/6d8ba221e7aafaa2f284b7d22faee814c28e009d)
  6. 関連文書 : Revert "x86, efi: Retain boot service code until after switching to virtual mode" - kernel/git/stable/linux.git - Linux kernel stable tree
  7. 関連文書 : x86/efi: defer freeing of boot services memory - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/6a25e25279282c5c8ade554c04c6ab9dc7902c64)
  8. 関連文書 : x86/efi: defer freeing of boot services memory - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/227688312fece0026fc67a00ba9a0b3611ebe95d)
  9. 関連文書 : x86/efi: defer freeing of boot services memory - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/7131bd1fecc749bc94fb44aae217bbd8a8a85264)
  10. 関連文書 : x86/efi: defer freeing of boot services memory - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/7dcf59422a3b0d20ddda844f856b4a1e0608a326)
更新履歴

  • [2026年04月27日]
      掲載