LinuxのLinux Kernelにおける不特定の脆弱性
タイトル LinuxのLinux Kernelにおける不特定の脆弱性
概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。mshv_vtlでのMAX_FOLIO_ORDERを超えるvmemmap_shiftの問題です。MSHV_ADD_VTL0_MEMORYを介してVTL0メモリを登録する際、カーネルはstart_pfnとlast_pfnのORの末尾のゼロの数をpgmap-vmemmap_shiftとして計算し、両端点が整列している最大の複合ページオーダーを使用しようとしていました。しかし、この値はMAX_FOLIO_ORDERで制限されていなかったため、十分に整列された範囲(例えば物理範囲[0x800000000000, 0x800080000000)で、start_pfn=0x800000000が35の末尾ゼロに対応)がmemremap_pages()が許容する値を超えるシフトを生じさせ、WARNを引き起こし-EINVALを返していました。警告例として、"WARNING: ... memremap_pages+0x512/0x650 requested folio size unsupported"があります。MAX_FOLIO_ORDERのチェックはcommit 646b67d57589("mm/memremap: reject unreasonable folio/compound page sizes in memremap_pages()")で追加されました。今回の修正では、vmemmap_shiftをMAX_FOLIO_ORDERに制限し、カーネルがサポートする最大のオーダーのみを常に要求するようにして、範囲外の値の発生を回避しています。また、エラー処理パスも修正し、devm_memremap_pages()からの実際のエラーコードを伝搬させ、真の-EINVAL戻り値を隠していた-EFAULTをハードコードする問題を解決しました。

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

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

公表日 2026年5月8日0:00
登録日 2026年5月18日11:27
最終更新日 2026年5月18日11:27
CVSS3.0 : 警告
スコア 5.5
ベクター CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
影響を受けるシステム
Linux
Linux Kernel 6.19 以上 7.0.2 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
変更履歴
No 変更内容 変更日
1 [2026年05月18日]
  掲載
2026年5月18日11:27

NVD脆弱性情報
CVE-2026-43348
概要

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

mshv_vtl: Fix vmemmap_shift exceeding MAX_FOLIO_ORDER

When registering VTL0 memory via MSHV_ADD_VTL0_MEMORY, the kernel
computes pgmap->vmemmap_shift as the number of trailing zeros in the
OR of start_pfn and last_pfn, intending to use the largest compound
page order both endpoints are aligned to.

However, this value is not clamped to MAX_FOLIO_ORDER, so a
sufficiently aligned range (e.g. physical range
[0x800000000000, 0x800080000000), corresponding to start_pfn=0x800000000
with 35 trailing zeros) can produce a shift larger than what
memremap_pages() accepts, triggering a WARN and returning -EINVAL:

WARNING: ... memremap_pages+0x512/0x650
requested folio size unsupported

The MAX_FOLIO_ORDER check was added by
commit 646b67d57589 ("mm/memremap: reject unreasonable folio/compound
page sizes in memremap_pages()").

Fix this by clamping vmemmap_shift to MAX_FOLIO_ORDER so we always
request the largest order the kernel supports, in those cases, rather
than an out-of-range value.

Also fix the error path to propagate the actual error code from
devm_memremap_pages() instead of hard-coding -EFAULT, which was
masking the real -EINVAL return.

公表日 2026年5月8日23:16
登録日 2026年5月9日4:13
最終更新日 2026年5月12日23:10
関連情報、対策とツール
共通脆弱性一覧