Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

redhat логотип

CVE-2026-98670

Опубликовано: 18 окт. 2026
Источник: redhat
CVSS3: 4.1
EPSS Низкий

Описание

In the Linux kernel, the following vulnerability has been resolved: iio: adc: xilinx-xadc: free IRQ before cancelling the unmask worker on unbind The ZYNQ XADC alarm IRQ handler queues zynq_unmask_work via schedule_delayed_work(); that work is cleared by a devm callback. Register the devm callback before devm_request_irq() so the devres LIFO teardown frees the IRQ first, ensuring the handler can no longer queue work by the time the workqueue is cleared. Otherwise the handler could re-arm the work and run it after the xadc structure has been freed. This issue was found by an in-house static analysis tool.

A flaw was found in the Linux kernel's Xilinx XADC driver. During device unbinding, an improper cleanup order allows interrupt requests (IRQs) to remain active after delayed work has been cancelled. A local user capable of detaching the device can cause an interrupt to schedule work that executes after device memory has been freed, leading to a use-after-free condition. This flaw primarily results in a Denial of Service (DoS) via a kernel crash, or potentially enables arbitrary code execution.

Отчет

An incorrect devres teardown order in the Xilinx Zynq XADC driver can allow the alarm IRQ handler to queue zynq_unmask_work after the delayed work was already cancelled. The queued worker may then run after the containing xadc structure has been freed, creating a use-after-free condition. The most direct impact is a kernel crash and local denial of service. Reuse of the freed work item memory may also create a potential path to kernel memory corruption or privilege escalation, although a reliable controlled write primitive is not established by the available code. For the CVSS the PR:H reflects that driver unbind or device removal normally requires administrative control on the host. AC:H reflects the narrow race window between work cancellation and IRQ release. The issue is not network reachable and requires affected Xilinx Zynq XADC hardware with the relevant interrupt path active.

Меры по смягчению последствий

Mitigation for this issue is either not available or the currently available options don't meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base or stability.

Затронутые пакеты

ПлатформаПакетСостояниеРекомендацияРелиз
Red Hat Enterprise Linux 10kernelNot affected
Red Hat Enterprise Linux 6kernelNot affected
Red Hat Enterprise Linux 7kernelNot affected
Red Hat Enterprise Linux 7kernel-rtNot affected
Red Hat Enterprise Linux 8kernelNot affected
Red Hat Enterprise Linux 8kernel-rtNot affected
Red Hat Enterprise Linux 9kernelNot affected
Red Hat Enterprise Linux 9kernel-rtNot affected
Red Hat OpenShift Container Platform 4openshift/ose-rhel-coreos-8Not affected
Red Hat OpenShift Container Platform 4openshift/ose-rhel-coreos-9Not affected

Показывать по

Дополнительная информация

Статус:

Moderate
Дефект:
CWE-416
https://bugzilla.redhat.com/show_bug.cgi?id=2555131kernel: iio: adc: xilinx-xadc: free IRQ before cancelling the unmask worker on unbind

EPSS

Процентиль: 7%
0.00172
Низкий

4.1 Medium

CVSS3

Связанные уязвимости

ubuntu
23 дня назад

In the Linux kernel, the following vulnerability has been resolved: iio: adc: xilinx-xadc: free IRQ before cancelling the unmask worker on unbind The ZYNQ XADC alarm IRQ handler queues zynq_unmask_work via schedule_delayed_work(); that work is cleared by a devm callback. Register the devm callback before devm_request_irq() so the devres LIFO teardown frees the IRQ first, ensuring the handler can no longer queue work by the time the workqueue is cleared. Otherwise the handler could re-arm the work and run it after the xadc structure has been freed. This issue was found by an in-house static analysis tool.

nvd
23 дня назад

In the Linux kernel, the following vulnerability has been resolved: iio: adc: xilinx-xadc: free IRQ before cancelling the unmask worker on unbind The ZYNQ XADC alarm IRQ handler queues zynq_unmask_work via schedule_delayed_work(); that work is cleared by a devm callback. Register the devm callback before devm_request_irq() so the devres LIFO teardown frees the IRQ first, ensuring the handler can no longer queue work by the time the workqueue is cleared. Otherwise the handler could re-arm the work and run it after the xadc structure has been freed. This issue was found by an in-house static analysis tool.

CVSS3: 5.7
msrc
22 дня назад

iio: adc: xilinx-xadc: free IRQ before cancelling the unmask worker on unbind

debian
23 дня назад

In the Linux kernel, the following vulnerability has been resolved: i ...

github
23 дня назад

In the Linux kernel, the following vulnerability has been resolved: iio: adc: xilinx-xadc: free IRQ before cancelling the unmask worker on unbind The ZYNQ XADC alarm IRQ handler queues zynq_unmask_work via schedule_delayed_work(); that work is cleared by a devm callback. Register the devm callback before devm_request_irq() so the devres LIFO teardown frees the IRQ first, ensuring the handler can no longer queue work by the time the workqueue is cleared. Otherwise the handler could re-arm the work and run it after the xadc structure has been freed. This issue was found by an in-house static analysis tool.

EPSS

Процентиль: 7%
0.00172
Низкий

4.1 Medium

CVSS3