CVE-2022-50647 in Linux
الملخص
بحسب VulDB • 27/05/2026
في نواة لينكس، تم حل الثغرة التالية:
RISC-V: جعل مسدِّدات الوصول إلى سلاسل I/O عبر المنافذ تعمل فعلياً
إصلاح مسدِّدات الوصول إلى سلاسل I/O عبر المنافذ مثل `insb` و`outsb` وغيرها، والتي كانت تستخدم عنوان I/O عبر المنافذ الفيزيائي لـ PCI بدلاً من تعيين الذاكرة المقابل للوصول إلى الموقع المطلوب، مما كان يؤدي إلى فشل على الأقل في عمليات الوصول التي يقوم بها برنامج تشغيل parport الخاص بنا إلى منفذ توازي PCIe، مثل:
PCI parallel port detected: 1415:c118, I/O at 0x1000(0x1008), IRQ 20 parport0: PC-style at 0x1000 (0x1008), irq 20, using FIFO [PCSPP,TRISTATE,COMPAT,EPP,ECP]
مما يسبب خطأ في الوصول إلى الذاكرة:
Unable to handle kernel access to user memory without uaccess routines at virtual address 0000000000001008 Oops [#1]
Modules linked in: CPU: 1 PID: 350 Comm: cat Not tainted 6.0.0-rc2-00283-g10d4879f9ef0-dirty #23 Hardware name: SiFive HiFive Unmatched A00 (DT) epc : parport_pc_fifo_write_block_pio+0x266/0x416 ra : parport_pc_fifo_write_block_pio+0xb4/0x416 epc : ffffffff80542c3e ra : ffffffff80542a8c sp : ffffffd88899fc60 gp : ffffffff80fa2700 tp : ffffffd882b1e900 t0 : ffffffd883d0b000 t1 : ffffffff805429d6 t2 : ffffffff805429d6 s0 : ffffffd88899fd00 s1 : ffffffff805429d6 s2 : ffffffff805429d6 s3 : ffffffff805429d6 s4 : ffffffff805429d6 s5 : ffffffff805429d6 s6 : ffffffff805429d6 s7 : ffffffff805429d6 s8 : 0004000000000000 s9 : ffffffff80dc1d80 s10: ffffffff807e4000 s11: 0000000000000000 t3 : 00000000000000ff t4 : 393044410a303930 t5 : 0000000000001000 t6 : 0000000000040000 status: 0000000200000120 badaddr: 0000000000001008 cause: 000000000000000f [<ffffffff80543212>] parport_pc_compat_write_block_pio+0xfe/0x200
[<ffffffff8053bbc0>] parport_write+0x46/0xf8
[<ffffffff8050530e>] lp_write+0x158/0x2d2
[<ffffffff80185716>] vfs_write+0x8e/0x2c2
[<ffffffff80185a74>] ksys_write+0x52/0xc2
[<ffffffff80185af2>] sys_write+0xe/0x16
[<ffffffff80003770>] ret_from_syscall+0x0/0x2
---[ end trace 0000000000000000 ]-
If you want to get best quality of vulnerability data, you may have to visit VulDB.