CVE-2023-54095 in Linuxالمعلومات

الملخص

بحسب VulDB • 09/06/2026

في نواة لينكس، تم حل الثغرة التالية:

powerpc/iommu: إصلاح مشكلة مشاركة مسجلات الإشعارات (notifiers) بين حافلات PCI و VIO.

تقوم الدالة `fail_iommu_setup()` بتسجيل بنية البيانات `fail_iommu_bus_notifier` لكل من حافلي PCI و VIO. وبما أن `struct notifier_block` هو عقدة في قائمة مرتبطة، فإن هذا يؤدي إلى تسجيل أي مسجلات إشعارات يتم إضافتها لاحقاً لأي نوع من الحافلين أيضاً على النوع الآخر، نظراً لأنهما يشاركان نفس العقدة.

يؤدي ذلك إلى حدوث مشكلات في كود (على الأقل) `vgaarb`، الذي يسجل ملاحظاً للحافلات PCI. وتنتهي المطاف باستدعاء `pci_notify()` على جهاز VIO، بعد تحويله باستخدام `to_pci_dev()` رغم أنه ليس جهاز PCI، مما يتسبب أخيراً في وصول غير صالح إلى الذاكرة داخل الدالة `vga_arbiter_add_pci_device()` كما تم اكتشاف ذلك باستخدام KASAN:

BUG: KASAN: slab-out-of-bounds in vga_arbiter_add_pci_device+0x60/0xe00 Read of size 4 at addr c000000264c26fdc by task swapper/0/1

Call Trace: dump_stack_lvl+0x1bc/0x2b8 (unreliable) print_report+0x3f4/0xc60 kasan_report+0x244/0x698 __asan_load4+0xe8/0x250 vga_arbiter_add_pci_device+0x60/0xe00 pci_notify+0x88/0x444 notifier_call_chain+0x104/0x320 blocking_notifier_call_chain+0xa0/0x140 device_add+0xac8/0x1d30 device_register+0x58/0x80 vio_register_device_node+0x9ac/0xce0 vio_bus_scan_register_devices+0xc4/0x13c __machine_initcall_pseries_vio_device_init+0x94/0xf0 do_one_initcall+0x12c/0xaa8 kernel_init_freeable+0xa48/0xba8 kernel_init+0x64/0x400 ret_from_kernel_thread+0x5c/0x64

تم إصلاح هذه المشكلة بإنشاء هياكل `notifier_block` منفصلة لكل نوع من أنواع الحافلات.

[mpe: إضافة #ifdef لإصلاح خطأ البناء عند تعيين CONFIG_IBMVIO=n]

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

مسؤول

Linux

حجز

24/12/2025

إفشاء

24/12/2025

الاعتدال

تمت الموافقة

إدخال

VDB-338056

EPSS

0.00204

KEV

لا

النشاطات

منخفض جدًا

المصادر

Interested in the pricing of exploits?

See the underground prices here!