UBUNTU-CVE-2026-89938: Use After Free
In the Linux kernel, the following vulnerability has been resolved: iio: chemical: atlas-sensor: use iiotriggerpollnested() to fix remove UAF The atlas driver requests its hardware data-ready IRQ with devmrequestthreadedirq(); its threaded handler queues an irqwork, atlasworkhandler(), that calls iiotriggerpoll(data->trig). The IRQ is devm-managed, so freeirq() runs from the devres unwind after atlasremove() returns without flushing that irqwork. Once a buffer is enabled, conversion-complete IRQs keep firing and queueing it; a pending irqwork can therefore run after the unwind has freed atlasdata/indiodev and the trigger, when atlasworkhandler() derives the atlasdata pointer via containerof() and dereferences data->trig, a use-after-free. Call iiotriggerpollnested() directly from the threaded handler instead of bouncing through irqwork. freeirq() then drains the threaded handler, closing the window; other iio drivers with a threaded data-ready IRQ do the same (e.g. bmi270). This issue was found by an in-house static analysis tool.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
In the atlas-sensor threaded IRQ handler, call iio_trigger_poll_nested() directly instead of queuing irq_work that later calls iio_trigger_poll().