CVE-2026-98342 in Linux情報

要約

〜によって VulDB • 2026年10月06日

Linuxカーネルにおいて、以下の脆弱性が修正されました:

dmaengine: dma_deviceの解放前にRCU読者からの待機を行う

dma_issue_pending_all()はrcu_read_lock()の下でlist_for_each_entry_rcu()を使用してdma_device_listを走査します。一方、dma_device_release()はlist_del_rcu()によってデバイスをリストから外し、その後device->device_release()(plx_dma.cなどの多くのドライバでは直接kfree()を呼び出す)を呼び出します。

デバイスがアンリンクされてから解放されるまでの間にグレース期間がないため、dma_issue_pending_all()内の並行するRCU読者は、デバイスが既に解放された後にそのデバイスにアクセスしてしまう可能性があります。

当初のロックレスな走査は、クライアントがプロバイダモジュール(したがってデバイス)をリストを横断している間保持するためのdmaengine参照を保持することに依存していました。しかし、コミット8ad342a86359「dmaengine: dma_device構造体への参照カウント追加」により、dma_deviceのライフタイムはモジュール参照から切り離されました。その結果、読者がまだリストを走査している間にデバイスが解放される可能性があります。

RCU読者が確実に終了することを保証するため、デバイスを解放する前にsynchronize_rcu()を追加します。これを無条件で保持してください:device_release()を実装していないプロバイダは、dma_async_device_unregister()の戻り値を受け取ると自身でデバイスを解放します。この呼び出しはdma_list_mutexを保持した状態でグレース期間待機するため安全であり、影響を受けるのはクリーンアップパスのみです。

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

責任者

Linux

予約する

2026年09月25日

モデレーション

承諾済み

エントリ

VDB-414062

EPSS

0.00000

アクティビティ

非常低い

ソース

Do you want to use VulDB in your project?

Use the official API to access entries easily!