Cloudanix VulnDB

CVE-2026-98343

None

CVSS

—

EPSS

0.2%

Published

Oct 6, 2026

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A bug in the Linux kernel's handling of hardware data channels was fixed to stop memory from being used after it had already been released, which could otherwise cause crashes or security problems.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Moderate
Impact
Privilege Gain
Component
OS kernel
Class
Use After Free
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Use-after-free in dma_chan_put() and dma_release_channel() allows reading chan->device->owner after dma_device_release() has freed the dma_device and channels when the last reference is dropped.

Why it matters to the business

Potential system instability, crashes, or local privilege escalation on Linux systems performing DMA channel operations, increasing risk of denial of service or compromise in environments relying on the kernel's DMA engine.

How an attack unfolds

An attacker with local access triggers DMA channel allocation and release sequences that cause the final reference drop on the device, leading to premature freeing; subsequent reads in dma_chan_put() access freed memory, which KASAN detects as slab-use-after-free.

How to fix it

Update to a Linux kernel version containing the fix that caches the module owner in dma_chan_put() before performing the put operation; apply the patch from the dmaengine commit resolving the reference counting issue.

How to confirm the fix worked

Confirm the presence of the caching change in dma_chan_put() prior to module_put(), verify no KASAN reports on insmod or DMA channel teardown, and test with workloads that allocate and release DMA channels.

Typical attack path

  1. Obtain local code execution on a Linux system
  2. Load or trigger a driver/module that performs dmaengine channel get/put operations
  3. Force repeated dma_chan_put and dma_release_channel calls to drop the final reference
  4. Trigger the race where dma_device_release frees the structure before the trailing module_put
  5. Read freed memory via chan->device->owner to achieve use-after-free

How to detect it

Review kernel logs for KASAN slab-use-after-free reports referencing dma_chan_put, inspect module load/unload sequences involving dmaengine, and search system call traces for repeated DMA channel release patterns around the time of any crashes.

What your security team should do

  • Prioritize kernel updates on all Linux systems within the next maintenance window due to the 17-day-old public disclosure
  • Monitor EPSS trend and watch for any increase in exploit maturity
  • Restrict unprivileged module loading and DMA-capable device access where feasible
  • Enable KASAN or similar memory safety tooling in test environments to validate the fix

The record

In the Linux kernel, the following vulnerability has been resolved: dmaengine: fix use-after-free in dma_chan_put() and dma_release_channel() When dma_device_put() drops the last reference on chan->device->ref, dma_device_release() runs and may free the dma_device along with its channels. dma_chan_put() then still reads chan->device->owner via dma_chan_to_owner() for the trailing module_put(). KASAN catches it: slab-use-after-free in dma_chan_put+0x3e6/0x4c0 Read of size 8 by task insmod/6319 Freed by task 6319: kfree+0x225/0x470 dma_chan_put+0x395/0x4c0 dmaengine_put+0xf8/0x160 Cache the module owner in dma_chan_put() before the put so the trailing module_put() does not need chan->device.

Affected packages

Ecosystem Package Introduced Fixed