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

الملخص

بحسب VulDB • 25/07/2026

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

gpio: eic-sprd: استخدام raw_spinlock_t في مسار بدء تشغيل مقاطعة المعالج (IRQ)

تقوم الدالة sprd_eic_irq_unmask() بتمكين مقاطعة GPIO للمدخلات/المخرجات العامة (GPIO IRQ)، ثم تقوم بتحديث حالة وحدة التحكم من خلال دالة sprd_eic_update()، والتي تأخذ القفل sprd_eic->lock باستخدام spin_lock_irqsave(). يمكن الوصول إلى الاستدعاء (callback) هذا من داخل irq_startup() أثناء إعداد مقاطعة طلبية. هذا المسار غير قابل للنوم (non-sleepable)، ولكن في بيئة PREEMPT_RT يصبح نوع القفل العادي spinlock_t قفلاً قابلاً للنوم.

تم العثور على هذه المشكلة بواسطة أداة التحليل الثابت لدينا، ثم تمت مراجعتها يدوياً مقابل الشجرة الحالية للكود.

حافظت نقطة الاختراق (PoC) المثبتة على مسار استدعاء request_threaded_irq() -> __setup_irq() -> irq_startup() -> sprd_eic_irq_unmask() -> sprd_eic_update() واستخدمت الحافة الأصلية spin_lock_irqsave(&sprd_eic->lock). أظهر تحليل القفل (Lockdep):

BUG: sleeping function called from invalid context hardirqs last disabled at ... __setup_irq.constprop.0 ... [vuln_msv]
sprd_rt_spin_lock_irqsave+0x1c/0x30 [vuln_msv]
sprd_eic_update.constprop.0+0x48/0x90 [vuln_msv]
sprd_eic_irq_unmask.constprop.0+0x35/0x50 [vuln_msv]
__setup_irq.constprop.0+0xd/0x30 [vuln_msv]

تم تحويل قفل وحدة تحكم Spreadtrum EIC إلى raw_spinlock_t. القسم المحمي بالقفل يقوم فقط بتسلسل تحديثات سجلات MMIO ولا يحتوي على عمليات قابلة للنوم، لذا فإن إبقاؤه غير قابل للنوم أمر مناسب لاستدعاءات irqchip.

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

مسؤول

Linux

حجز

19/07/2026

إفشاء

25/07/2026

الاعتدال

تمت الموافقة

إدخال

VDB-383200

EPSS

0.00220

KEV

لا

النشاطات

منخفض

المصادر

Interested in the pricing of exploits?

See the underground prices here!