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

Linuxカーネルにおいて、以下の脆弱性が修正されました。ドライバーコアのdriver_match_device()に対してdevice_lockの強制適用が行われました。現在、driver_match_device()は3つの箇所から呼び出されています。1つの箇所(__device_attach_driver)はdevice_lock(dev)を保持していますが、他の2つ(bind_storeと__driver_attach)は保持していませんでした。この不整合により、busのmatch()コールバックがロック保持下で呼び出される保証がありませんでした。この問題を解決するために、deviceロックをscoped guardで保持するdriver_match_device_locked()を導入しました。bind_store()と__driver_attach()内のロックなしの呼び出しをこの新しいヘルパーに置き換えました。また、この保証を強制するためにdriver_match_device()にロックアサーションも追加しました。この整合性により既知の競合状態も修正されました。driver_overrideの実装はdevice_lockに依存しているため、このロックの欠如がバスで報告されていたuse-after-free(UAF)の原因となっていました。CONFIG_PROVE_LOCKINGおよびCONFIG_LOCKDEPを有効にした状態で、2つの新たにロックされた経路を24時間ストレステストした結果、UAFの再発やlockdep警告は発生しませんでした。

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

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

Publication Date April 27, 2026, midnight
Registration Date May 8, 2026, 12:06 p.m.
Last Update May 8, 2026, 12:06 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 2.6.30 以上 7.0 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年05月08日]
  掲載
May 8, 2026, 12:06 p.m.

NVD Vulnerability Information
CVE-2026-31688
Summary

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

driver core: enforce device_lock for driver_match_device()

Currently, driver_match_device() is called from three sites. One site
(__device_attach_driver) holds device_lock(dev), but the other two
(bind_store and __driver_attach) do not. This inconsistency means that
bus match() callbacks are not guaranteed to be called with the lock
held.

Fix this by introducing driver_match_device_locked(), which guarantees
holding the device lock using a scoped guard. Replace the unlocked calls
in bind_store() and __driver_attach() with this new helper. Also add a
lock assertion to driver_match_device() to enforce this guarantee.

This consistency also fixes a known race condition. The driver_override
implementation relies on the device_lock, so the missing lock led to the
use-after-free (UAF) reported in Bugzilla for buses using this field.

Stress testing the two newly locked paths for 24 hours with
CONFIG_PROVE_LOCKING and CONFIG_LOCKDEP enabled showed no UAF recurrence
and no lockdep warnings.

Publication Date April 28, 2026, 3:16 a.m.
Registration Date April 28, 2026, 4:08 a.m.
Last Update April 28, 2026, 3:32 a.m.
Related information, measures and tools
Common Vulnerabilities List