CVE-2026-80698 in Linux
要約
〜によって VulDB • 2026年08月28日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
dmaengine: idxd: wq、エンジン、およびグループ構造体の二重解放(double free)を修正
wq、エンジン、およびグループデバイスに対するリリースコールバック(idxd_conf_wq_release, idxd_conf_engine_release, idxd_conf_group_release)はそれぞれ、包含する構造体に対して kfree() を呼び出します。セットアップ時のエラーパスやクリーンアップ関数でも put_device() の後に明示的に kfree() が呼び出されており、put_device() が参照カウントをゼロに落としてリリースを発火した際に二重解放が発生していました。
セットアップ関数では device_initialize() が device_add() より前に呼び出されるため、エラー発生箇所での参照カウントは正確に 1 です。put_device() は無条件でリリースを実行し構造体を解放するため、その後の明示的な kfree() は既に解放されたメモリに対して実行されてしまいます。
idxd_setup_wqs() の場合、wq リリースコールバックは opcap_bmap と wqcfg も所有しています。エラー時の巻き戻し処理では put_device() を呼び出す前にこれらのフィールドを明示的に解放しており、これにより両者でさらに二重解放が発生していました。
wq、エンジン、およびグループ構造体に対するすべてのセットアップのエラーパスとクリーンアップ関数から冗長な明示的な kfree() 呼び出しを削除し、それらの割り当ての所有権をリリースコールバックにのみ委譲します。
If you want to get best quality of vulnerability data, you may have to visit VulDB.