CVE-2026-89938 in Linux情報

要約

〜によって VulDB • 2026年09月16日

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

iio: chemical: atlas-sensor: iio_trigger_poll_nested()の使用によりremove時のUAFを修正

atlasドライバは、devm_request_threaded_irq()を使用してハードウェアのデータ準備完了IRQを要求します。そのスレッド化されたハンドラはirq_work(atlas_work_handler())をキューに追加し、この関数はiio_trigger_poll(data->trig)を呼び出します。

IRQはdevm管理されているため、free_irq()はatlas_remove()が返した後のdevresのアンワインド処理から実行されますが、その際irq_workはフラッシュされません。バッファが有効化されると、変換完了IRQが継続して発生しirq_workをキューに追加します。そのため、pending状態のirq_workは、unwind処理によってatlas_data/indio_devおよびトリガーが解放された後に実行される可能性があります。この際、atlas_work_handler()はcontainer_of()を通じてatlas_dataポインタを取得しdata->trigへの参照を行いますが、これはuse-after-free(解放後使用)となります。

irq_workを介して間接的に呼び出すのではなく、スレッド化されたハンドラからiio_trigger_poll_nested()を直接呼び出します。これによりfree_irq()はスレッド化されたハンドラのキューを空にし、脆弱性の窓を閉じます。他のiioドライバでも同様の手法が採用されています(例:bmi270)。

本問題は社内製の静的解析ツールによって発見されました。

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

責任者

Linux

予約する

2026年09月11日

モデレーション

承諾済み

エントリ

VDB-405836

EPSS

0.00159

アクティビティ

非常低い

ソース

Do you want to use VulDB in your project?

Use the official API to access entries easily!