CVE-2026-89938 in Linux信息

摘要

由 VulDB • 2026-09-16

在 Linux 内核中,已修复以下漏洞:

iio: chemical: atlas-sensor: 使用 iio_trigger_poll_nested() 以修复移除时的 UAF(释放后重用)问题。

atlas 驱动程序通过 devm_request_threaded_irq() 请求其硬件数据就绪 IRQ;其中继处理程序会排队一个 irq_work,即 atlas_work_handler(),该函数调用 iio_trigger_poll(data->trig)。

由于 IRQ 由 devm 管理,因此在 atlas_remove() 返回后,free_irq() 会在 devres 展开过程中运行,而不会刷新该 irq_work。一旦缓冲区启用,转换完成的中断请求会持续触发并排队;因此,在 devres 展开过程释放了 atlas_data/indio_dev 和 trigger 之后,待处理的 irq_work 仍可能执行。此时,atlas_work_handler() 通过 container_of() 获取 atlas_data 指针并解引用 data->trig,从而导致 use-after-free(UAF)。

改为在中继处理程序中直接调用 iio_trigger_poll_nested(),而不是通过 irq_work 进行中转。free_irq() 随后会排空中继处理程序,从而关闭该时间窗口;其他具有中继数据就绪 IRQ 的 iio 驱动程序也采用相同做法(例如 bmi270)。

此问题由内部静态分析工具发现。

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

来源

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!