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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2022-50625— serial: amba-pl011: avoid SBSA UART accessing DMACR register

EPSS 0.04% · P12
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2022-50625

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
serial: amba-pl011: avoid SBSA UART accessing DMACR register
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: serial: amba-pl011: avoid SBSA UART accessing DMACR register Chapter "B Generic UART" in "ARM Server Base System Architecture" [1] documentation describes a generic UART interface. Such generic UART does not support DMA. In current code, sbsa_uart_pops and amba_pl011_pops share the same stop_rx operation, which will invoke pl011_dma_rx_stop, leading to an access of the DMACR register. This commit adds a using_rx_dma check in pl011_dma_rx_stop to avoid the access to DMACR register for SBSA UARTs which does not support DMA. When the kernel enables DMA engine with "CONFIG_DMA_ENGINE=y", Linux SBSA PL011 driver will access PL011 DMACR register in some functions. For most real SBSA Pl011 hardware implementations, the DMACR write behaviour will be ignored. So these DMACR operations will not cause obvious problems. But for some virtual SBSA PL011 hardware, like Xen virtual SBSA PL011 (vpl011) device, the behaviour might be different. Xen vpl011 emulation will inject a data abort to guest, when guest is accessing an unimplemented UART register. As Xen VPL011 is SBSA compatible, it will not implement DMACR register. So when Linux SBSA PL011 driver access DMACR register, it will get an unhandled data abort fault and the application will get a segmentation fault: Unhandled fault at 0xffffffc00944d048 Mem abort info: ESR = 0x96000000 EC = 0x25: DABT (current EL), IL = 32 bits SET = 0, FnV = 0 EA = 0, S1PTW = 0 FSC = 0x00: ttbr address size fault Data abort info: ISV = 0, ISS = 0x00000000 CM = 0, WnR = 0 swapper pgtable: 4k pages, 39-bit VAs, pgdp=0000000020e2e000 [ffffffc00944d048] pgd=100000003ffff803, p4d=100000003ffff803, pud=100000003ffff803, pmd=100000003fffa803, pte=006800009c090f13 Internal error: ttbr address size fault: 96000000 [#1] PREEMPT SMP ... Call trace: pl011_stop_rx+0x70/0x80 tty_port_shutdown+0x7c/0xb4 tty_port_close+0x60/0xcc uart_close+0x34/0x8c tty_release+0x144/0x4c0 __fput+0x78/0x220 ____fput+0x1c/0x30 task_work_run+0x88/0xc0 do_notify_resume+0x8d0/0x123c el0_svc+0xa8/0xc0 el0t_64_sync_handler+0xa4/0x130 el0t_64_sync+0x1a0/0x1a4 Code: b9000083 b901f001 794038a0 8b000042 (b9000041) ---[ end trace 83dd93df15c3216f ]--- note: bootlogd[132] exited with preempt_count 1 /etc/rcS.d/S07bootlogd: line 47: 132 Segmentation fault start-stop-daemon This has been discussed in the Xen community, and we think it should fix this in Linux. See [2] for more information. [1] https://developer.arm.com/documentation/den0094/c/?lang=en [2] https://lists.xenproject.org/archives/html/xen-devel/2022-11/msg00543.html
Source: NVD (National Vulnerability Database)
CVSS Information
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Type
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于amba-pl011串口驱动错误访问DMACR寄存器,可能导致虚拟设备问题。
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

VendorProductAffected VersionsCPESubscribe
LinuxLinux 0dd1e247fd39aed20fd2baacc62ca44d82534798 ~ 1c5f0d3f480abd8c26761b6b1f486822e77faea3 -
LinuxLinux 4.2 -

II. Public POCs for CVE-2022-50625

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2022-50625

登录查看更多情报信息。

Same Patch Batch · Linux · 2025-12-08 · 82 CVEs total

CVE-2022-50630mm: hugetlb: fix UAF in hugetlb_handle_userfault
CVE-2023-53752net: deal with integer overflows in kmalloc_reserve()
CVE-2022-50627wifi: ath11k: fix monitor mode bringup crash
CVE-2022-50628drm/gud: Fix UBSAN warning
CVE-2022-50626media: dvb-usb: fix memory leak in dvb_usb_adapter_init()
CVE-2022-50622ext4: fix potential memory leak in ext4_fc_record_modified_inode()
CVE-2022-50621dm: verity-loadpin: Only trust verity targets with enforcement
CVE-2022-50620f2fs: fix to invalidate dcc->f2fs_issue_discard in error path
CVE-2022-50619drm/amdkfd: Fix memory leak in kfd_mem_dmamap_userptr()
CVE-2022-50623fpga: prevent integer overflow in dfl_feature_ioctl_set_irq()
CVE-2022-50629wifi: rsi: Fix memory leak in rsi_coex_attach()
CVE-2023-53742kcsan: Avoid READ_ONCE() in read_instrumented_memory()
CVE-2023-53743PCI: Free released resource after coalescing
CVE-2023-53744soc: ti: pm33xx: Fix refcount leak in am33xx_pm_probe
CVE-2023-53745um: vector: Fix memory leak in vector_config
CVE-2023-53746s390/vfio-ap: fix memory leak in vfio_ap device driver
CVE-2023-53747vc_screen: reload load of struct vc_data pointer in vcs_write() to avoid UAF
CVE-2023-53748media: mediatek: vcodec: Fix potential array out-of-bounds in decoder queue_setup
CVE-2023-53750pinctrl: freescale: Fix a memory out of bounds when num_configs is 1
CVE-2023-53751cifs: fix potential use-after-free bugs in TCP_Server_Info::hostname

Showing top 20 of 82 CVEs. View all on vendor page → →

IV. Related Vulnerabilities

V. Comments for CVE-2022-50625

No comments yet


Leave a comment