CVE-2026-98662: iio: light: gp2ap020a00f: drain irq_work after free_irq
iio: light: gp2ap020a00f: drain irqwork after freeirq
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
debian/linuxto a version that resolves this vulnerability.Fixed in 6.12.113-1 - Upgrade
Upgrade
debian/linuxto a version that resolves this vulnerability.Fixed in 7.2.10-1 - Upgrade
Upgrade
debian/linux-6.12to a version that resolves this vulnerability.Fixed in 6.12.113-1~deb12u1 - Upgrade
Upgrade
linux/Kernelto a version that resolves this vulnerability.Fixed in 5.10.273 - Upgrade
Upgrade
linux/Kernelto a version that resolves this vulnerability.Fixed in 5.15.224 - Upgrade
Upgrade
linux/Kernelto a version that resolves this vulnerability.Fixed in 6.1.191 - Upgrade
Upgrade
linux/Kernelto a version that resolves this vulnerability.Fixed in 6.6.160 - Upgrade
Upgrade
linux/Kernelto a version that resolves this vulnerability.Fixed in 6.12.113 - Upgrade
Upgrade
linux/Kernelto a version that resolves this vulnerability.Fixed in 6.18.56 - Upgrade
Upgrade
linux/Kernelto a version that resolves this vulnerability.Fixed in 7.2.10 - Upgrade
Upgrade
debian/linuxto a version that resolves this vulnerability.Fixed in 6.12.115-2Fixed in 7.2.12-1Fixed in 7.2.15-1 - Upgrade
Upgrade
Linux kernel iio: light: gp2ap020a00fto a version that resolves this vulnerability.Patch 78601726d4a5
Event History
Frequently Asked Questions
When can the use-after-free occur?
It can occur during device removal, or along the probe error path, when the threaded IRQ handler has already queued irq_work before free_irq() is called. That queued work can later call iio_trigger_poll() after the associated trigger has been freed.
What component and execution path are involved?
The affected path is the gp2ap020a00f IIO light-sensor driver. Its threaded IRQ handler queues data->work with irq_work_queue(), which subsequently runs in a per-CPU context.
What mitigation is available if the fix is not yet applied?
The provided data identifies the required code-level mitigation: synchronize pending work with irq_work_sync(&data->work) after free_irq() in both the remove path and the probe error path. No operational workaround is stated.