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

الملخص

بحسب VulDB • 25/09/2026

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

pds_core: إصلاح مشكلة السباق في الوصول إلى cmd_regs أثناء إلغاء تعيين BAR خلال إعادة التعيين

تقوم مسارات الخطأ لـ pdsc_map_bars() في كل من دالتي pdsc_reset_prepare() وpdsc_reset_done() بتهيئة وإلغاء تعيين (iounmap) لـ cmd_regs دون استخدام قفل devcmd_lock، كما أن حلقة التنزيل في pdsc_legacy_firmware_update() تقوم بإحالة مرجع إلى cmd_regs بعد إفلات القفل وإعادة أخذه دون إعادة التحقق. يمكن لإجراء FLR المتزامن مع تحديث عبر devlink إلغاء تعيين cmd_regs أثناء وجود أمر جهاز (devcmd) قيد التنفيذ، مما يتسبب في إحالة مرجع NULL أو كتابة في منطقة MMIO غير مُعيّنة.

خُذ قفل devcmd_lock خلال عملية إلغاء التعيين/إعادة تعيين BAR، وأعد التحقق من cmd_regs داخل حلقة التنزيل. فقط وحدة الوظيفة الرئيسية (PF) تقوم بتعيين cmd_regs وتشغيل أمر الجهاز، لذا تخطَّ عملية الإلغاء في حالة وحدات الوظائف الافتراضية (VF)، كما تفعل pdsc_remove() وpdsc_reset_done() بالفعل.

إعادة التعيين التي تكتمل بالكامل ضمن النافذة غير المقفلة لا تمثل مشكلة صحة للصورة: حيث يقوم الجهاز بتصفية جلسة التحديث، لذا يتم رفض التنزيل المستأنَف، ويقوم بالتحقق من الصورة المؤرشفة قبل كتابة فتحة الوميض (flash slot)، مع الإبلاغ عن PDS_RC_BAD_FW بدلاً من تفعيلها.

تقوم pdsc_unmap_bars() أيضاً بتهيئة info_regs وintr_status وintr_ctrl. يتم تهدئة قارئات المقاطعات وبداية/إيقاف تشغيل تلك المؤشرات قبل إلغاء التعيين بواسطة pdsc_fw_down()، والتي تحرر المقاطعات وتُنهِي الطوابير (queues). أما قراءات debugfs فلا يتم تهديئتها، لأن ملفات ذلك تتجاوز عمر إعادة التعيين؛ وهذا أمر سابق الوجود وخارج نطاق هذا الإصلاح.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

مسؤول

Linux

حجز

25/09/2026

إفشاء

25/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-410247

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!