CVE-2022-50145: dmaengine: sf-pdma: Add multithread support for a DMA channel
In the Linux kernel, the following vulnerability has been resolved:
dmaengine: sf-pdma: Add multithread support for a DMA channel
When we get a DMA channel and try to use it in multiple threads it
will cause oops and hanging the system.
% echo 64 > /sys/module/dmatest/parameters/threads_per_chan
% echo 10000 > /sys/module/dmatest/parameters/iterations
% echo 1 > /sys/module/dmatest/parameters/run
[ 89.480664] Unable to handle kernel NULL pointer dereference at virtual
address 00000000000000a0
[ 89.488725] Oops [#1]
[ 89.494708] CPU: 2 PID: 1008 Comm: dma0chan0-copy0 Not tainted
5.17.0-rc5
[ 89.509385] epc : vchan_find_desc+0x32/0x46
[ 89.513553] ra : sf_pdma_tx_status+0xca/0xd6
This happens because of data race. Each thread rewrite channels's
descriptor as soon as device_prep_dma_memcpy() is called. It leads to the
situation when the driver thinks that it uses right descriptor that
actually is freed or substituted for other one.
With current fixes a descriptor changes its value only when it has
been used. A new descriptor is acquired from vc->desc_issued queue that
is already filled with descriptors that are ready to be sent. Threads
have no direct access to DMA channel descriptor. Now it is just possible
to queue a descriptor for further processing.
Security readout for executives and security teams
Plain-English summary
This Linux kernel issue can crash or hang an affected system when the sf-pdma DMA driver is used from multiple threads on one channel. It is primarily an availability risk, not a documented data theft issue. Exposure depends on whether the affected driver and hardware are present.
Executive priority
Treat as a targeted reliability fix for Linux platforms using this DMA driver. Prioritize patching exposed appliances, embedded systems, and operational hosts where a kernel hang would affect service availability.
Technical view
The sf-pdma dmaengine driver had a race where concurrent threads rewrote a channel descriptor during device_prep_dma_memcpy(). The driver could then reference a freed or substituted descriptor, causing a kernel NULL pointer dereference in vchan_find_desc and system instability.
Likely exposure
Likely limited to Linux systems using the sf-pdma DMA engine driver and workloads that share a DMA channel across threads. The bundle does not prove broad default exposure across all Linux systems.
Exploitation context
The source bundle shows a reproducible kernel oops and hang using dmatest. It does not cite active exploitation, and KEV status is false. No remote exploitation path is described.
Researcher notes
Evidence supports a concurrency bug in descriptor ownership within sf-pdma. The fix changes descriptor handling so threads queue descriptors rather than directly mutating the channel descriptor. The bundle lacks CVSS, CWE, exploitability analysis, and distribution-specific package status.
Mitigation direction
Update to a vendor kernel containing the referenced stable fixes.
Check Linux distribution advisories for affected kernel packages and backports.
Prioritize systems using sf-pdma-capable hardware or DMA-heavy workloads.
Avoid unnecessary multithreaded use of one DMA channel until patched.
Validation and detection
Inventory kernels and determine whether sf-pdma is built or loaded.
Map running kernel versions to vendor advisories or fixed stable commits.
Review crash logs for sf_pdma_tx_status or vchan_find_desc oops traces.
Confirm patched kernels no longer carry the vulnerable descriptor handling.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2022-50145 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
0CVSS vectors
3Timeline events
0ADP providers
6Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Jun 18, 2025, 11:03 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.