CVE-2022-50625
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılmışdır: serial: amba-pl011: SBSA UART-ın DMACR registrinə müraciətinin qarşısının alınması "ARM Server Base System Architecture" [1] sənədinin "B Generic UART" fəsli ümumi bir UART interfeysini təsvir edir. Belə ümumi UART DMA-nı dəstəkləmir. Mövcud kodda sbsa_uart_pops və amba_pl011_pops eyni stop_rx əməliyyatını paylaşır ki, bu da pl011_dma_rx_stop funksiyasını çağıraraq DMACR registrinə müraciətə səbəb olur. Bu commit, DMA-nı dəstəkləməyən SBSA UART-lar üçün DMACR registrinə müraciətin qarşısını almaq məqsədilə pl011_dma_rx_stop funksiyasına using_rx_dma yoxlamasını əlavə edir. Nüvə "CONFIG_DMA_ENGINE=y" ilə DMA mühərrikini aktivləşdirdiyi zaman, Linux SBSA PL011 drayveri bəzi funksiyalarda PL011 DMACR registrinə müraciət edəcəkdir. Əksər real SBSA Pl011 aparat tətbiqləri üçün DMACR yazma davranışı nəzərə alınmayacaqdır. Buna görə də bu DMACR əməliyyatları aşkar problemlərə səbəb olmayacaq. Lakin bəzi virtual SBSA PL011 aparatları, məsələn, Xen virtual SBSA PL011 (vpl011) cihazı üçün davranış fərqli ola bilər. Qonaq sistem tətbiq edilməmiş UART registrinə müraciət etdikdə, Xen vpl011 emulyasiyası qonağa "data abort" göndərəcəkdir. Xen VPL011 SBSA ilə uyğun olduğu üçün o, DMACR registrini tətbiq etməyəcəkdir. Beləliklə, Linux SBSA PL011 drayveri DMACR registrinə müraciət etdikdə, idarə olunmayan "data abort" xətası baş verəcək və tətbiqdə seqmentasiya xətası (segmentation fault) yaranacaq: 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 Bu məsələ Xen icmasında müzakirə edilmişdir və biz bunun Linux-da düzəldilməli olduğunu düşünürük. Daha çox məlumat üçün [2]-yə baxın. [1] https://developer.arm.com/documentation/den0094/c/?lang=en [2] https://lists.xenproject.org/archives/html/xen-devel/2022-11/msg00543.html
Necə düzəltmək olar
- Linux Linux1c5f0d3f480abd8c26761b6b1f486822e77faea3, a4ea20ab82aa2b197dc7b08f51e1d615578276a0, 78d837ce20517e0c1ff3ebe08ad64636e02c2e48, 965f07ea5fd1b9591bcccc825a93ad883e56222c, d5b16eb076f46c88d02d41ece5bec4e0d89158bb, d71a611fca1984c0765f9317ff471ac8cd0e3e2f, 38a10fdd54d17590d45cb1c43b9889da383b6b1a, 64bc5dbc3260230e2f022288c71e5c680059384a, 94cdb9f33698478b0e7062586633c42c6158a786 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 0dd1e247fd39aed20fd2baacc62ca44d82534798 ≤ v < 1c5f0d3f480abd8c26761b6b1f486822e77faea3, 0dd1e247fd39aed20fd2baacc62ca44d82534798 ≤ v < a4ea20ab82aa2b197dc7b08f51e1d615578276a0, 0dd1e247fd39aed20fd2baacc62ca44d82534798 ≤ v < 78d837ce20517e0c1ff3ebe08ad64636e02c2e48, 0dd1e247fd39aed20fd2baacc62ca44d82534798 ≤ v < 965f07ea5fd1b9591bcccc825a93ad883e56222c, 0dd1e247fd39aed20fd2baacc62ca44d82534798 ≤ v < d5b16eb076f46c88d02d41ece5bec4e0d89158bb, 0dd1e247fd39aed20fd2baacc62ca44d82534798 ≤ v < d71a611fca1984c0765f9317ff471ac8cd0e3e2f, 0dd1e247fd39aed20fd2baacc62ca44d82534798 ≤ v < 38a10fdd54d17590d45cb1c43b9889da383b6b1a, 0dd1e247fd39aed20fd2baacc62ca44d82534798 ≤ v < 64bc5dbc3260230e2f022288c71e5c680059384a, 0dd1e247fd39aed20fd2baacc62ca44d82534798 ≤ v < 94cdb9f33698478b0e7062586633c42c6158a786, 4.2 | 1c5f0d3f480abd8c26761b6b1f486822e77faea3, a4ea20ab82aa2b197dc7b08f51e1d615578276a0, 78d837ce20517e0c1ff3ebe08ad64636e02c2e48, 965f07ea5fd1b9591bcccc825a93ad883e56222c, d5b16eb076f46c88d02d41ece5bec4e0d89158bb, d71a611fca1984c0765f9317ff471ac8cd0e3e2f, 38a10fdd54d17590d45cb1c43b9889da383b6b1a, 64bc5dbc3260230e2f022288c71e5c680059384a, 94cdb9f33698478b0e7062586633c42c6158a786 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.