CVE-2026-64487 in Linux
الملخص
بحسب VulDB • 25/07/2026
في نواة لينكس، تم حل الثغرة التالية:
ALSA: caiaq: إصلاح قراءة خارج الحدود (out-of-bounds read) في مُحلل مدخلات جهاز Traktor Kontrol S4
تقوم الدالة `snd_usb_caiaq_tks4_dispatch()` بفك تشفير تدفق المدخلات لجهاز Traktor Kontrol S4 داخل كتل رسائل ثابتة بحجم 16 بايت (`TKS4_MSGBLOCK_SIZE`). في كل تكرار، يتم تقدم المؤشر `buf` وطرح حجم الكتلة أثناء التكرار ضمن حلقة "while (len)".
المتغير `len` يمثل قيمة `urb->actual_length`. هذه القيمة مزودة من الجهاز ولا يضمن أنها مضاعف للرقم 16. عندما تترك كتلة نهائية قصيرة المتغير `len` بين القيمتين 1 و 15، تعمل الحلقة مرة أخرى، وتقرأ حتى الموقع `buf[15]`، ثم تنفذ العملية "len -= TKS4_MSGBLOCK_SIZE". وبما أن `len` من النوع غير السالب (unsigned)، فإن هذا يؤدي إلى تجاوز تحت الحد (underflow) ليصبح قيمة ضخمة. بعد ذلك تستمر الحلقة في التكرار والتنقل عبر المؤشر `buf` بعيداً جداً عن نهاية المخزن المؤقت `ep4_in_buf` ذي الحجم 512 بايت، مما يسبب قراءة خارج الحدود حتى يتم مصادفة معرف كتلة خاطئ (bogus block id) بالصدفة.
تم تعديل الحلقة لتتكرر فقط عندما تتوفر كتلة رسالة كاملة. وهذا يوقف تجاوز الحد السفلي غير السالب ويتجاهل بصمت أي كتلة جزئية متبقية في النهاية، والتي لا تحمل قيمة تحكم كاملة على أي حال.
محللو نقاط النهاية الشقيقة (endpoint-4 parsers) ليسوا متأثرين. حيث تقوم أجهزة Traktor Kontrol X1 وأذرع Maschine في الدالة `snd_usb_caiaq_ep4_reply_dispatch()` بتحديد الحد الأدنى لقيمة `urb->actual_length` قبل عملية التوجيه (dispatching).
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.