製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性
Title LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性
Summary

Linuxカーネルにおいて、以下の脆弱性が修正されました。lib: test_hmm: ファイルクローズ時にデバイスページを退避させて use-after-free を回避するパッチシリーズ「Minor hmm_test fixes and cleanups」です。これはHMMカーネルセルフテストに関する2つのバグ修正とクリーンアップであり、主にZenghui Yuによって報告されました。問題の分析と指摘に対してはLorenzoに特別な感謝が捧げられています。このパッチ(全3つのうちの1つ)は以下の内容を含みます。dmirror_fops_release()が呼び出される際、dmirror構造体は解放されますが、デバイスプライベートページが先にシステムメモリに移行されませんでした。これにより、これらのページは解放されたdmirrorへのゾーン_device_dataポインタのダングリングを持つ状態になります。その後、これらのページで(例えばコアダンプ中に)フォールトが発生すると、dmirror_devmem_fault()コールバックが古いポインタを逆参照し、カーネルパニックを引き起こしました。この問題はarm64上でmm/ksft_hmm.shを実行した際に報告されており、テストの失敗がSIGABRTを引き起こし、結果として生成されたコアダンプが古いデバイスプライベートページのVMAsをフォールトさせました。この問題は、dmirror_fops_release()内でdmirrorの解放前に各devmemチャンクに対してdmirror_device_evict_chunk()を呼び出し、すべてのデバイスプライベートページをシステムメモリに移行することで修正されました。この関数は先行宣言を避けるためにファイル内で前方に移動されています。

Possible impacts ・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 ・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 ・当該ソフトウェアが完全に停止する可能性があります。 
Solution

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

Publication Date June 8, 2026, midnight
Registration Date July 10, 2026, 10:28 a.m.
Last Update July 10, 2026, 10:28 a.m.
CVSS3.0 : 重要
Score 7.8
Vector CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Affected System
Linux
Linux Kernel 5.8 以上 6.1.176 未満
Linux Kernel 6.13 以上 6.18.27 未満
Linux Kernel 6.19 以上 7.0.4 未満
Linux Kernel 6.2 以上 6.6.140 未満
Linux Kernel 6.7 以上 6.12.86 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年07月10日]
  掲載
July 10, 2026, 10:28 a.m.

NVD Vulnerability Information
CVE-2026-46280
Summary

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

lib: test_hmm: evict device pages on file close to avoid use-after-free

Patch series "Minor hmm_test fixes and cleanups".

Two bugfixes a cleanup for the HMM kernel selftests. These were mostly
reported by Zenghui Yu with special thanks to Lorenzo for analysing and
pointing out the problems.

This patch (of 3):

When dmirror_fops_release() is called it frees the dmirror struct but
doesn't migrate device private pages back to system memory first. This
leaves those pages with a dangling zone_device_data pointer to the freed
dmirror.

If a subsequent fault occurs on those pages (eg. during coredump) the
dmirror_devmem_fault() callback dereferences the stale pointer causing a
kernel panic. This was reported [1] when running mm/ksft_hmm.sh on arm64,
where a test failure triggered SIGABRT and the resulting coredump walked
the VMAs faulting in the stale device private pages.

Fix this by calling dmirror_device_evict_chunk() for each devmem chunk in
dmirror_fops_release() to migrate all device private pages back to system
memory before freeing the dmirror struct. The function is moved earlier
in the file to avoid a forward declaration.

Publication Date June 9, 2026, 2:16 a.m.
Registration Date June 9, 2026, 4:15 a.m.
Last Update June 14, 2026, 3:16 p.m.
Related information, measures and tools
Common Vulnerabilities List