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

الملخص

بحسب VulDB • 18/09/2026

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

ASoC: rt700-sdw: تصريف عمل المقبض (jack) دائمًا عند الإزالة

تقوم الدالة `rt700_sdw_remove()` بتصريف `jack_detect_work` و `jack_btn_check_work` فقط عندما تكون قيمة `rt700->hw_init` صحيحة. يتم مسح هذا الرمز الحاسوبي للحالة بواسطة `rt700_update_status()` عندما يصبح العبد في SoundWire غير متصل (UNATTACHED)، ولكن يمكن أن يكون عنصر عمل المقبض قد تم إدراجه بالفعل من قبل `rt700_interrupt_callback()` أو `rt700_jack_init()` أثناء تهيئة الجهاز.

لا تستخدم `hw_init` كحاجز زمني للإزالة لتصريف هذه الكائنات العاملة (work objects). يتم تهيئة الأعمال المؤجلة خلال `rt700_init()`، لذا يمكن للإزالة إلغاؤها بشكل غير مشروط ومطابقة عمر الكائن مع عمر بيانات المشفر الخاصة به بدلاً من رمز حالة العتاد القابل للتغيير.

تم العثور على هذه المشكلة بواسطة أداة التحليل الثابت لدينا ثم تم تأكيدها عبر المراجعة اليدية لمسارات حالة SoundWire، وقطع الانقطاع (interrupts)، ومسار الإزالة. يجب أن يقوم مسار الإزالة بتصريف العمل بناءً على ما إذا كان كائن العمل موجودًا أم لا، وليس بناءً على رمز حالة عتاد وقت التشغيل الذي يمكن أن يتغير بعد إدراج العمل.

قام نموذج الاستغلال (PoC) في QEMU بإدراج `jack_detect_work`، ومحاكاة الحالة `SDW_SLAVE_UNATTACHED`، ثم الدخول إلى الإزالة. أفادت `DEBUG_OBJECTS` عن وجود كائن مؤقت/عمل نشط مرتبط بمسار عمل المقبض rt700 بعد أن تخطت عملية الإلغاء (cancel).

يتم إرسال هذا كمقترح للمواصفات (RFC) لأن الزناد العملي يعتمد على ترتيب إزالة نواة SoundWire بعد تحديث حالة UNATTACHED. إذا لم تتمكن الإزالة من التشغيل بعد مسح `hw_init` بينما لا يزال عمل المقبض معلقًا، فإن هذه تعتبر عملية تنظيف دفاعية لدورة الحياة بدلاً من سباق قابل للتحقيق في الأنظمة الحالية.

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

مسؤول

Linux

حجز

17/09/2026

إفشاء

18/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-407271

EPSS

0.00206

KEV

لا

النشاطات

منخفض جدًا

المصادر

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!