JVNDB-2026-028277 | |
LinuxのLinux Kernelにおける初期化されていないリソースの使用に関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました。mm/page_alloc: init_on_freeを使用した巨大ゼロフォリオのタグ初期化の修正です。__GFP_ZEROTAGSの意味合いは現在少し曖昧ですが、実質的にはこのフラグは__GFP_ZEROおよび__GFP_SKIP_KASANと共にのみ設定されます。init_on_freeを有効にすると、__free_pages_prepare()の段階でページをゼロクリアし、割り当て時のゼロクリアを省略します。しかし、__GFP_ZEROTAGSが設定された状態で割り当てを行うと、post_alloc_hook()はページ内容のクリアをスキップするだけでなく、タグメモリのクリアもスキップしてしまいます。多くのページは後にset_pte_at()を介してユーザ空間にマッピングされるため、タグが未初期化(PG_mte_taggedが設定されていない)と検出され、set_pte_at()などによってタグは初期化されます。このため、__GFP_ZEROTAGSによるタグの未クリアはほとんどの場合問題になりません。しかしながら、巨大ゼロフォリオは特殊としてマークされたPMDを通してマッピングされるため、この初期化は行われず、ページに設定されたタグがそのまま露出します。ドキュメント(Documentation/arch/arm64/memory-tagging-extension.rst)には、ページが最初にユーザ空間にマップされる際に割り当てタグは0に設定されると記述されていますが、init_on_freeが有効な巨大ゼロフォリオではこの前提が成り立ちません。この問題は、__GFP_ZEROTAGSを__GFP_ZEROから切り離し、tag_clear_highpages()にページ内容もクリアするかどうかを渡す形で修正されました。また、tag_clear_highpages()の返り値の意味を反転させ、より明確な意味合いに変更しています。この問題は、arm64/mteのselftestであるcheck_buffer_fillにおいて2MiBエリアを使用するように変更し、解放時にページに非0のタグが設定されていることを確認した上で巨大ゼロフォリオで再現されました(なお、ブート中は実際にタグは初期化されず、ページフラグにKASAN_TAG_KERNELが設定されるのみです)。 $ ./check_buffer_fill 1..20 ... not ok 17 Check initial tags with private mapping, sync error mode and mmap memory not ok 18 Check initial tags with private mapping, sync error mode and mmap/mprotect memory ...この修正コードはさらなる整理が必要であり、__GFP_ZEROTAGSを__GFP_SKIP_KASANから切り離すなどの作業を次に進める予定です。[akpm@linux-foundation.org: s/__GPF_ZERO/__GFP_ZERO/、Davidによる修正指示に準拠] | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 5.5 (警告) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/07/19 |
| 登録日 | 2026/08/17 |
| 最終更新日 | 2026/08/17 |



