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: 4.7 Medium
EPSS: < 1% Very Low
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 of 4.7 suggests low to moderate severity, and the EPSS score of less than 1% indicates a low likelihood of exploitation in the wild. 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 still significant, as the kernel memory corruption could lead to system instability or escalation if code execution can be achieved. 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 20, 2026 at 17:06 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 20, 2026 at 17:06 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4850-1 linux-6.12 security update
History

Fri, 30 Oct 2026 12:45:00 +0000


Wed, 21 Oct 2026 13:15:00 +0000


Tue, 20 Oct 2026 12:45:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

{'score': 4.7, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


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-30T12:38:31.341Z

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-30T13:21:16.690

Link: CVE-2026-98662

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-18T15:44:24Z

Links: CVE-2026-98662 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-20T17:15:14Z

Weaknesses