Description
In the Linux kernel, the following vulnerability has been resolved:

iio: light: gp2ap020a00f: drain irq_work after free_irq

The threaded IRQ handler queues data->work through irq_work_queue() so
the trigger is polled from a per-CPU context. free_irq() does not flush
an irq_work the handler already queued, so after gp2ap020a00f_remove()
returns that work may still run and call iio_trigger_poll() on data->trig,
which the devm cleanup has already freed, causing a use-after-free.

Add irq_work_sync(&data->work) after free_irq() in remove() and in the
probe error path, mirroring commit 78601726d4a5 ("iio: trigger: sysfs:
fix use-after-free on remove").

Found by an in-house static analysis tool, confirmed by manual review.
Published: 2026-10-18
Score: n/a
EPSS: n/a
KEV: No
Impact: Use‑After‑Free (memory corruption)
Action: Patch immediately
AI Analysis

Impact

The vulnerability originates in the Linux kernel’s Industrial I/O light sensor driver for the gp2ap020a00f device. During driver removal or an error path in probe, the code calls free_irq() while an irq_work task remains queued. Because free_irq() does not automatically flush this queued work, the work may still run after the device’s trigger context has been freed. This results in a use‑after‑free condition that can corrupt kernel memory or potentially allow execution of attacker‑controlled code if an attacker can influence the removal sequence.

Affected Systems

All Linux kernel distributions that ship the gp2ap020a00f IIO light sensor driver without the patch that adds irq_work_sync in the remove and probe error paths are affected. The specific vendor is Linux; the product is the Linux kernel. No precise version range is provided, but any kernel that has not yet incorporated the commit that fixes the issue is vulnerable.

Risk and Exploitability

The CVSS score is not listed, and no EPSS value is available, so formal risk quantification cannot be supplied. The use‑after‑free flaw is typically exploitable in a local or privileged context where an attacker can trigger device removal or reload the driver. The denial of service or privilege escalation potential is high, given the kernel memory corruption implication. The vulnerability is not currently listed in the CISA KEV catalog, indicating no widespread exploitation has been reported yet. The likely attack vector is local, requiring control over driver unload operations, and no publicly documented remote exploitation vector exists.

Generated by OpenCVE AI on October 18, 2026 at 22:57 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the latest stable kernel release that includes the commit 78601726d4a5 which adds irq_work_sync in the gp2ap020a00f driver unload path.
  • If an immediate kernel upgrade is not possible, disable or remove the gp2ap020a00f driver and block any hotplug removal of the device to prevent the use‑after‑free.
  • As a temporary workaround, manually patch the source file iio/light/gp2ap020a00f.c by inserting irq_work_sync(&data->work) after free_irq() in the remove() and probe error paths, then rebuild and install the module.

Generated by OpenCVE AI on October 18, 2026 at 22:57 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 18 Oct 2026 23:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sun, 18 Oct 2026 16:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: iio: light: gp2ap020a00f: drain irq_work after free_irq The threaded IRQ handler queues data->work through irq_work_queue() so the trigger is polled from a per-CPU context. free_irq() does not flush an irq_work the handler already queued, so after gp2ap020a00f_remove() returns that work may still run and call iio_trigger_poll() on data->trig, which the devm cleanup has already freed, causing a use-after-free. Add irq_work_sync(&data->work) after free_irq() in remove() and in the probe error path, mirroring commit 78601726d4a5 ("iio: trigger: sysfs: fix use-after-free on remove"). Found by an in-house static analysis tool, confirmed by manual review.
Title iio: light: gp2ap020a00f: drain irq_work after free_irq
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-18T15:44:24.421Z

Reserved: 2026-09-25T10:25:14.363Z

Link: CVE-2026-98662

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:19.507

Modified: 2026-10-18T16:17:19.507

Link: CVE-2026-98662

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-18T23:00:12Z

Weaknesses