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

iio: chemical: atlas-sensor: use iio_trigger_poll_nested() to fix remove UAF

The atlas driver requests its hardware data-ready IRQ with
devm_request_threaded_irq(); its threaded handler queues an irq_work,
atlas_work_handler(), that calls iio_trigger_poll(data->trig).

The IRQ is devm-managed, so free_irq() runs from the devres unwind after
atlas_remove() returns without flushing that irq_work. Once a buffer is
enabled, conversion-complete IRQs keep firing and queueing it; a pending
irq_work can therefore run after the unwind has freed atlas_data/indio_dev
and the trigger, when atlas_work_handler() derives the atlas_data pointer
via container_of() and dereferences data->trig, a use-after-free.

Call iio_trigger_poll_nested() directly from the threaded handler instead
of bouncing through irq_work. free_irq() 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.
Published: 2026-09-16
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: Use‑After‑Free leading to memory corruption or arbitrary code execution
Action: Patch
AI Analysis

Impact

The atlas‑sensor driver in the Linux kernel frees its data‑ready IRQ resources while a threaded handler may still be queued. The handler, waiting on conversion‑complete interrupts, dereferences freed data, resulting in a classic Use‑After‑Free (CWE‑416) that can corrupt memory or allow arbitrary code execution.

Affected Systems

The vulnerability affects the atlas‑sensor driver present in all Linux kernel builds prior to the fix. No specific kernel version range is listed in the advisory, but any kernel containing the original signature of this driver is at risk. The issue was identified by static analysis and subsequently patched in later kernel commits.

Risk and Exploitability

The CVSS score of 7.8 classifies the flaw as high severity, yet the EPSS score of less than 1% indicates a very low probability of exploitation. The vulnerability is not cited in the CISA KEV catalog. Exploitation would likely require a local privileged context to trigger device removal while the threaded work remains pending. Overall, the risk is moderate but can be effectively reduced through patching.

Generated by OpenCVE AI on September 18, 2026 at 07:35 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the kernel to a version that contains the atlas‑sensor fix (commit 2071624c3d0f497ca91da78858e6f30d7112fea6).
  • Rebuild or reload the atlas‑sensor driver module to ensure the patched handler is in use.
  • If a kernel upgrade cannot be applied immediately, remove or disable the atlas sensor device until the patch is deployed.

Generated by OpenCVE AI on September 18, 2026 at 07:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4817-1 linux-6.12 security update
Debian DSA Debian DSA DSA-6528-1 linux security update
History

Fri, 18 Sep 2026 08:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Wed, 16 Sep 2026 14:45:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

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


Wed, 16 Sep 2026 10:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: iio: chemical: atlas-sensor: use iio_trigger_poll_nested() to fix remove UAF The atlas driver requests its hardware data-ready IRQ with devm_request_threaded_irq(); its threaded handler queues an irq_work, atlas_work_handler(), that calls iio_trigger_poll(data->trig). The IRQ is devm-managed, so free_irq() runs from the devres unwind after atlas_remove() returns without flushing that irq_work. Once a buffer is enabled, conversion-complete IRQs keep firing and queueing it; a pending irq_work can therefore run after the unwind has freed atlas_data/indio_dev and the trigger, when atlas_work_handler() derives the atlas_data pointer via container_of() and dereferences data->trig, a use-after-free. Call iio_trigger_poll_nested() directly from the threaded handler instead of bouncing through irq_work. free_irq() 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.
Title iio: chemical: atlas-sensor: use iio_trigger_poll_nested() to fix remove UAF
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-09-16T14:40:24.952Z

Reserved: 2026-09-11T19:38:34.776Z

Link: CVE-2026-89938

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-16T11:17:03.323

Modified: 2026-09-16T15:18:19.210

Link: CVE-2026-89938

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-18T07:45:05Z

Weaknesses