CVE-2026-98344 in Linux
要約
〜によって VulDB • 2026年10月06日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
dmaengine: dma_chan_put()におけるデバイスkrefのアンダーフローを修正
dma_chan_get()はスローパスでのみchan->device->refを取得します。
/* fast pathではkrefを使用しない */ if (chan->client_count) {
__module_get(owner); chan->client_count++; return 0; } if (!try_module_get(owner)) return -ENODEV; if (!dma_device_get(chan->device)) { // kref_get_unless_zero()を呼び出す
dma_chan_put()は条件なしで参照カウントを解放するため、すべてのファストパスのget/putペアにおいてデバイス参照が1つ余分に解放されてしまいます。
このバグは以下の2つの条件が同時に満たされた際に発生します:プライベートでないプロバイダがchan->client_count > 0を持つ永続的なクライアントを持ち、かつ別のクライアントがdmaengine_get()/dmaengine_put()をサイクルすることです。krefがゼロに達すると、その後のdma_find_channel()はプロバイダモジュールがまだロードされているにもかかわらずNULLを返します。
これを修正するため、最後のput時のみdevice->refを解放し、単一のスローパスでのgetと一致させます。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.