CVE-2022-50625

Source
https://cve.org/CVERecord?id=CVE-2022-50625
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-50625.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2022-50625
Downstream
Related
Published
2025-12-08T01:16:39.642Z
Modified
2026-03-20T11:47:32.759679Z
Summary
serial: amba-pl011: avoid SBSA UART accessing DMACR register
Details

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, sbsauartpops and ambapl011pops share the same stoprx operation, which will invoke pl011dmarxstop, leading to an access of the DMACR register. This commit adds a usingrxdma check in pl011dmarx_stop to avoid the access to DMACR register for SBSA UARTs which does not support DMA.

When the kernel enables DMA engine with "CONFIGDMAENGINE=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: pl011stoprx+0x70/0x80 ttyportshutdown+0x7c/0xb4 ttyportclose+0x60/0xcc uartclose+0x34/0x8c ttyrelease+0x144/0x4c0 __fput+0x78/0x220 ___fput+0x1c/0x30 taskworkrun+0x88/0xc0 donotifyresume+0x8d0/0x123c el0svc+0xa8/0xc0 el0t64synchandler+0xa4/0x130 el0t64sync+0x1a0/0x1a4 Code: b9000083 b901f001 794038a0 8b000042 (b9000041) ---[ end trace 83dd93df15c3216f ]--- note: bootlogd[132] exited with preemptcount 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

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/50xxx/CVE-2022-50625.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
0dd1e247fd39aed20fd2baacc62ca44d82534798
Fixed
1c5f0d3f480abd8c26761b6b1f486822e77faea3
Fixed
a4ea20ab82aa2b197dc7b08f51e1d615578276a0
Fixed
78d837ce20517e0c1ff3ebe08ad64636e02c2e48
Fixed
965f07ea5fd1b9591bcccc825a93ad883e56222c
Fixed
d5b16eb076f46c88d02d41ece5bec4e0d89158bb
Fixed
d71a611fca1984c0765f9317ff471ac8cd0e3e2f
Fixed
38a10fdd54d17590d45cb1c43b9889da383b6b1a
Fixed
64bc5dbc3260230e2f022288c71e5c680059384a
Fixed
94cdb9f33698478b0e7062586633c42c6158a786

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-50625.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
4.2.0
Fixed
4.9.337
Type
ECOSYSTEM
Events
Introduced
4.10.0
Fixed
4.14.303
Type
ECOSYSTEM
Events
Introduced
4.15.0
Fixed
4.19.270
Type
ECOSYSTEM
Events
Introduced
4.20.0
Fixed
5.4.229
Type
ECOSYSTEM
Events
Introduced
5.5.0
Fixed
5.10.163
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.86
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.0.16
Type
ECOSYSTEM
Events
Introduced
6.1.0
Fixed
6.1.2

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-50625.json"