製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおける不特定の脆弱性
Title LinuxのLinux Kernelにおける不特定の脆弱性
Summary

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をハードコードする問題を解決しました。

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

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

Publication Date May 8, 2026, midnight
Registration Date May 18, 2026, 11:27 a.m.
Last Update May 18, 2026, 11:27 a.m.
CVSS3.0 : 警告
Score 5.5
Vector CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Affected System
Linux
Linux Kernel 6.19 以上 7.0.2 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年05月18日]
  掲載
May 18, 2026, 11:27 a.m.

NVD Vulnerability Information
CVE-2026-43348
Summary

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.

Publication Date May 8, 2026, 11:16 p.m.
Registration Date May 9, 2026, 4:13 a.m.
Last Update May 12, 2026, 11:10 p.m.
Related information, measures and tools
Common Vulnerabilities List