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

Linuxカーネルにおいて、以下の脆弱性が修正されました。drmのchange_handle内で、prime交換前に古いハンドルをNULLに設定します。change_handleには潜在的な競合状態が存在しました。ioctlは一時的に2つのidrエントリを持つ単一のオブジェクトを扱い、その間に並行して実行されるgem_closeがオブジェクトを削除し、ひとつのハンドルを除去しつつもう一方を残してしまいます。その結果、使用後解放(use-after-free)の問題が発生する可能性がありました。この問題を修正するために、gem_close自身が行う処理と同様の手順を実施します(f6cd7daecff5 drm: ドライバーの参照を解放して再利用可能にする前の処理)。まずidr_replaceで古いハンドルをNULLに置き換えます。prime操作が成功した場合にのみ、実際にそれをクローズします。create_tailにも同様の問題を避けるために同様の処理を行う必要がありました(bd46cece51a3 drm/gem: drm_gem_handle_create_tail()の競合状態を修正)。この関数はidr_allocで新しいハンドルをNULLに設定し、その後に正しいオブジェクトを差し替えることで競合を避けています。ここではdrm_primeが唯一の競合する操作ですが、change_handleは処理全体を通じてprimeロックを保持しているため、この方法は必要ありません。v2ではエラー経路のクリーンアップが行われました。

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

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

Publication Date May 28, 2026, midnight
Registration Date June 11, 2026, 4:21 p.m.
Last Update June 11, 2026, 4:21 p.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 6.18 以上 6.18.32 未満
Linux Kernel 6.19 以上 7.0.9 未満
Linux Kernel 7.1
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年06月11日]
  掲載
June 11, 2026, 4:21 p.m.

NVD Vulnerability Information
CVE-2026-46215
Summary

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

drm: Set old handle to NULL before prime swap in change_handle

There was a potential race condition in change_handle. The ioctl
briefly had a single object with two idr entries; a concurrent
gem_close could delete the object and remove one of the handles
while leaving the other one dangling, which could subsequently
be dereferenced for a use-after-free.

To fix this, do the same dance that gem_close itself does.
(f6cd7daecff5 drm: Release driver references to handle before making it available again)
First idr_replace the old handle to NULL. Later, if the prime
operations are successful, actually close it.

create_tail required a similar dance to avoid a similar problem.
(bd46cece51a3 drm/gem: Fix race in drm_gem_handle_create_tail())
It idr_allocs the new handle with NULL, then swaps in the correct
object later to avoid races. We don't need to do that here, since
the only operations that could race are drm_prime, and
change_handle holds the prime lock for the entire duration.

v2: cleanups of error paths

Publication Date May 28, 2026, 7:16 p.m.
Registration Date May 29, 2026, 4:14 a.m.
Last Update May 30, 2026, 8:17 p.m.
Related information, measures and tools
Common Vulnerabilities List