Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2022-50362— dmaengine: hisilicon: Add multi-thread support for a DMA channel

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于DMA通道多线程支持不足,可能导致系统崩溃。

CVSS 7.8 · High EPSS 0.21% · P11

Affected Version Matrix 12

VendorProduct Version RangeStatus
Linux Linux e9f08b65250d73ab70e79e194813f52b8d306784< af12e209a9d559394d35875ba0e6c80407605888 affected
e9f08b65250d73ab70e79e194813f52b8d306784< 7cb9b20941e1fb20d22d0a2f460a3d4fa417274c affected
e9f08b65250d73ab70e79e194813f52b8d306784< d4a8ec5cc7ff5d442bd49a44f26d74b2021ba4c8 affected
e9f08b65250d73ab70e79e194813f52b8d306784< f4cee0b385cd0348e071d4d80c4c13cfe547c70d affected
e9f08b65250d73ab70e79e194813f52b8d306784< 2cbb95883c990d0002a77e13d3278913ab26ad79 affected
5.6 affected
< 5.6 unaffected
5.10.150≤ 5.10.* unaffected
… +4 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2022-50362

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
dmaengine: hisilicon: Add multi-thread support for a DMA channel
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: dmaengine: hisilicon: Add multi-thread 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 100 > /sys/module/dmatest/parameters/threads_per_chan % echo 100 > /sys/module/dmatest/parameters/iterations % echo 1 > /sys/module/dmatest/parameters/run [383493.327077] Unable to handle kernel paging request at virtual address dead000000000108 [383493.335103] Mem abort info: [383493.335103] ESR = 0x96000044 [383493.335105] EC = 0x25: DABT (current EL), IL = 32 bits [383493.335107] SET = 0, FnV = 0 [383493.335108] EA = 0, S1PTW = 0 [383493.335109] FSC = 0x04: level 0 translation fault [383493.335110] Data abort info: [383493.335111] ISV = 0, ISS = 0x00000044 [383493.364739] CM = 0, WnR = 1 [383493.367793] [dead000000000108] address between user and kernel address ranges [383493.375021] Internal error: Oops: 96000044 [#1] PREEMPT SMP [383493.437574] CPU: 63 PID: 27895 Comm: dma0chan0-copy2 Kdump: loaded Tainted: GO 5.17.0-rc4+ #2 [383493.457851] pstate: 204000c9 (nzCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [383493.465331] pc : vchan_tx_submit+0x64/0xa0 [383493.469957] lr : vchan_tx_submit+0x34/0xa0 This occurs because the transmission timed out, and that's due to data race. Each thread rewrite channels's descriptor as soon as device_issue_pending is called. It leads to the situation that the driver thinks that it uses the right descriptor in interrupt handler while channels's descriptor has been changed by other thread. The descriptor which in fact reported interrupt will not be handled any more, as well as its tx->callback. That's why timeout reports. With current fixes channels' descriptor changes it's 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. In case of channel's descriptor is busy, try to submit to HW again when a descriptor is completed. In this case, vc->desc_issued may be empty when hisi_dma_start_transfer is called, so delete error reporting on this. Now it is just possible to queue a descriptor for further processing.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于DMA通道多线程支持不足,可能导致系统崩溃。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux e9f08b65250d73ab70e79e194813f52b8d306784 ~ af12e209a9d559394d35875ba0e6c80407605888 -
Linux Linux 5.6 -

II. Public POCs for CVE-2022-50362

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2022-50362

请登录查看更多情报信息。

Same Patch Batch · Linux · 2025-09-17 · 56 CVEs total

CVE-2023-53338 9.8 CRITICAL lwt: Fix return values of BPF xmit ops
CVE-2022-50373 9.8 CRITICAL fs: dlm: fix race in lowcomms
CVE-2022-50363 9.8 CRITICAL skmsg: pass gfp argument to alloc_sk_msg()
CVE-2023-53360 9.8 CRITICAL NFSv4.2: Rework scratch handling for READ_PLUS (again)
CVE-2023-53358 8.8 HIGH ksmbd: fix racy issue under cocurrent smb2 tree disconnect
CVE-2023-53340 7.8 HIGH net/mlx5: Collect command failures data only for known commands
CVE-2022-50368 7.8 HIGH drm/msm/dsi: fix memory corruption with too many bridges
CVE-2022-50367 7.8 HIGH fs: fix UAF/GPF bug in nilfs_mdt_destroy
CVE-2023-53354 7.8 HIGH skbuff: skb_segment, Call zero copy functions before using skbuff frags
CVE-2022-50355 7.8 HIGH staging: vt6655: fix some erroneous memory clean-up loops
CVE-2022-50354 7.8 HIGH drm/amdkfd: Fix kfd_process_device_init_vm error handling
CVE-2022-50365 7.5 HIGH skbuff: Account for tail adjustment during pull operations
CVE-2023-53335 7.5 HIGH RDMA/cxgb4: Fix potential null-ptr-deref in pass_establish()
CVE-2023-53336 media: ipu-bridge: Fix null pointer deref on SSDB/PLD parsing warnings
CVE-2022-50374 Bluetooth: hci_{ldisc,serdev}: check percpu_init_rwsem() failure
CVE-2022-50353 mmc: wmt-sdmmc: fix return value check of mmc_add_host()
CVE-2023-53337 nilfs2: do not write dirty data after degenerating to read-only
CVE-2022-50372 cifs: Fix memory leak when build ntlmssp negotiate blob failed
CVE-2022-50369 drm/vkms: Fix null-ptr-deref in vkms_release()
CVE-2022-50371 led: qcom-lpg: Fix sleeping in atomic

Showing top 20 of 56 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2022-50362

No comments yet


Leave a comment