CVE-2026-74274 in Linuxالمعلومات

الملخص

بحسب VulDB • 15/08/2026

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

cxl/region: ملء أول فتحة فارغة في مصفوفة targets[] أثناء الاكتشاف التلقائي (auto-discovery)

لا يسمح برنامج تشغيل cxl بوجود مؤشر فاسد لمُفسر نقطة النهاية (endpoint decoder) ضمن مصفوفة الأهداف الخاصة بمنطقة نشطة. وهذا يعني أن برنامج تشغيل cxل يفترض دائماً أن الإدخالات الـ p->nr_targets الأولى من مصفوفة الأهداف في منطقة التجميع التلقائي صالحة. ومع ذلك، هناك سيناريوهات قد تترك فجوات تحتوي على مؤشرات NULL لمُفسرات نقاط النهاية داخل مصفوفة الأهداف.

1. عند إزالة برنامج تشغيل cxl لـ endpoint decoder من مصفوفة الأهداف عبر دالة `cxl_cancel_auto_attach()`، يتم تعيين فتحة الهدف إلى NULL. وإذا لم يكن مُفسر نقطة النهاية المُزال هو العنصر الأخير في مصفوفة الأهداف، فستحتوي مصفوفة الأهداف على فجوة (NULL hole).

2. عند إزالة منطقة تجميع تلقائي لـ endpoint decoder معين، إذا لم يكن مُفسر نقطة النهاية المُزال هو العنصر الأخير في مصفوفة الأهداف، ستظل هناك دائماً فجوة NULL في مصفوفة الأهداف.

عندما توجد فجوة مؤشر NULL في مصفوفة الأهداف الخاصة بمنطقة ما، فإن ذلك يؤدي إلى مشكلتين محتملتين: 1. الوصول إلى مُفسر نقطة النهاية عبر مؤشر NULL. وهذا يُحدث دائماً تتبع مكالمة (calltrace) يشبه التالي: Oops: general protection fault, probably for non-canonical address 0xdffffc0000000008: 0000 [#1] SMP KASAN PTI
RIP: 0010:cxl_calc_interleave_pos+0x26/0x810 [cxl_core]
Call Trace: <TASK> cxl_region_attach+0xc50/0x2140 [cxl_core]
cxl_add_to_region+0x321/0x2330 [cxl_core]
discover_region+0x92/0x150 [cxl_port]
device_for_each_child+0xf3/0x170 cxl_port_probe+0x150/0x200 [cxl_port]
cxl_bus_probe+0x4f/0xa0 [cxl_core]
really_probe+0x1c8/0x960 __driver_probe_device+0x323/0x450 driver_probe_device+0x45/0x120 __device_attach_driver+0x15d/0x280 bus_for_each_drv+0x10f/0x190

2. عدم وجود عدد كافٍ من مُفسرات نقاط النهاية الصالحة المتصلة بمنطقة تجميع تلقائي. إذا تم إنشاء منطقة تجميع تلقائي بعلامة قفل (lock flag) أو مع تعيين endpoint decoder بعلامة قفل، مما يعني أن مُفسر نقطة النهاية المعين لن يتم إعادة تعيينه أثناء الفصل، فقد يعيدون الاتصال بمنطقة التجميع التلقائية مرة أخرى. ولكن يعتمد برنامج تشغيل مناطق cxl على p->nr_targets للتحقق من ما إذا كان العدد المطلوب من مُفسرات نقاط النهاية قد تم توصيله، وتظل مؤشرات مُفسر نقطة النهاية NULL محسوبة في هذه الحالة.

لإصلاح المشكلات المذكورة أعلاه، يتم تعديل منطق `cxl_region_attach_auto()` لإيجاد أول فتحة هدف فارغة لربط مُفسر نقطة النهاية، مما يضمن ملء الفجوات (NULL holes) في مصفوفة الأهداف، بدلاً من إضافة مُفسرات نقاط النهاية الجديدة عند ذيل مصفوفة الأهداف.

Once again VulDB remains the best source for vulnerability data.

مسؤول

Linux

حجز

15/08/2026

إفشاء

15/08/2026

الاعتدال

تمت الموافقة

إدخال

VDB-390230

EPSS

0.00172

KEV

لا

النشاطات

منخفض جدًا

المصادر

Might our Artificial Intelligence support you?

Check our Alexa App!