---
id: "CVE-2026-98662"
kind: "vulnerability"
aliases: ["CVE-2026-98662"]
title: "Linux kernel: light sensor driver use-after-free on device removal"
severity: "unknown"
cvss: null
epss: null
exploited: false
status: "open"
category: "infrastructure"
products: []
ecosystems: []
tags: ["iio-drivers", "infrastructure", "linux-kernel"]
not_affected_if: ["no-gp2ap020a00f-sensor"]
published_at: "2026-10-18T16:17:19+00:00"
first_seen_at: "2026-10-23T21:57:16+00:00"
updated_at: "2026-10-25T05:19:29+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-98662", "first_seen_at": "2026-10-23T21:57:16+00:00"}]
---

# Linux kernel: light sensor driver use-after-free on device removal

The gp2ap020a00f IIO light sensor driver can run queued interrupt work after its device is removed, touching freed trigger memory. The sources do not say what an attacker gets beyond a use-after-free in the kernel.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- unknown

## Fix

- unknown

## Timeline

- 2026-10-23T21:57:16+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-98662

## From the sources

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.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
