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値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/03/25 |
| 登録日 | 2026/04/27 |
| 最終更新日 | 2026/04/27 |



