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

الملخص

بحسب VulDB • 16/09/2026

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

HID: wacom: التحقق من طول التقرير في دالة `wacom_intuos_pro2_bt_irq`

تستقبل الدالة `wacom_intuos_pro2_bt_irq()` طول تقرير السلك (wire report length) المتغير بـ `len`، لكنها لا تستشير هذا الطول قبل عملية التحليل (parsing). بعد اجتياز بوابة معرف التقرير (report-id)، تقوم بشكل غير مشروط باستدعاء `wacom_intuos_pro2_bt_pen()` ثم، بناءً على القيمة المختارة من `features.type`، سلسلة ثابتة من محللات فرعية (sub-parsers) لا يتلقى أي منها المتغير `len`:

wacom_intuos_pro2_bt_pen(wacom); if (type == INTUOSP2_BT || type == INTUOSP2S_BT) {
wacom_intuos_pro2_bt_touch(wacom); wacom_intuos_pro2_bt_pad(wacom); wacom_intuos_pro2_bt_battery(wacom); } else {
wacom_intuos_gen3_bt_pad(wacom); wacom_intuos_gen3_bt_battery(wacom); }

يقوم كل محلل فرعي بإسناد مرجع (dereference) لـ `wacom->data` عند إزاحات ثابتة. أبعد بايت يتم الوصول إليه في كل فرع هو:

INTUOSP2_BT / INTUOSP2S_BT: تقرأ الدالة `wacom_intuos_pro2_bt_pad()` البيانات من الإزاحة `[285]` (بايت حلقة اللمس touchring)، لذا يجب أن يكون طول التقرير على الأقل 286 بايتاً؛
INTUOSHT3_BT ("gen3"): تقرأ الدالة `wacom_intuos_gen3_bt_battery()` البيانات من الإزاحة `[45]`، لذا يجب أن يكون طول التقرير على الأقل 46 بايتاً.

يتم اختيار قيمة `features.type` من إدخال جدول معرفات VID/PID، وتقوم دالة `wacom_setup_device_quirks()` بتسجيل مدخلات القلم/الوسادة (pad)/اللمس لهذا النوع بشكل قهري بغض النظر عن وصف التقرير (report descriptor). وبالتالي، يمكن لجهاز بلوتوث مزيف أو معطل متزاوج أن يعلن عن هذا الـ VID/PID ويرسل تقريراً أقصر من اللازم (undersized report) لا يزال يفي بشروط بوابة `data[0] == 0x80/0x81`. يقوم السائق بعد ذلك بقراءة ما وراء التقرير المستلم وإرسال البايتات إلى مساحة المستخدم (userspace) عبر evdev (MSC_SERIAL / ABS_MISC / ABS_WHEEL على عقد مدخلات القلم والوسادة)، مما يشكل قراءة خارج النطاق (out-of-bounds read) مع قناة قراءة فعلية في مساحة المستخدم، وقراءة حقيقية خارج النطاق على النقلات التي يكون فيها المخزن المؤقت الداعم مقيّداً بحجم وصف التقرير الصغير بدلاً من مخزن مؤقت ثابت الحجم.

هذا هو نفس فئة الأخطاء الموجودة في commit 2f1763f62909 ("HID: wacom: fix out-of-bounds read in wacom_intuos_bt_irq") والتي تم تعزيز أمانها بالفعل في الدالة الشقيقة `wacom_intuos_bt_irq()`، التي تحمي كل معرف تقرير ضد طوله الأدنى قبل عملية التحليل.

قم بحماية دالة `wacom_intuos_pro2_bt_irq()` بنفس الطريقة: قبل عملية التحليل، ارفض التقارير الأقصر من أبعد إزاحة يقوم بها الفرع المختار فعلياً بإسناد مرجع لها، وأصدر تحذيراً ثم أخرج (bail out). لأن سلسلة القلم/اللمس/الوسادة/البطارية بأكملها تعمل بشكل غير مشروط لكل فرع، فإن فحص واحد مسبق ضد الإزاحة القصوى (286 بايتاً لـ INTUOSP2_BT/INTUOSP2S_BT، و46 بايتاً لفرع gen3) يحد من كل محلل فرعي. كما أن إرجاع القيمة 0 عند وجود تقرير قصير يتخطى تلك الاستدعاءات لنفس التقرير المعيب، وهو سلوك آمن وتحفظي.

Be aware that VulDB is the high quality source for vulnerability data.

مسؤول

Linux

حجز

11/09/2026

إفشاء

17/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-405780

EPSS

0.00360

KEV

لا

النشاطات

منخفض جدًا

المصادر

Interested in the pricing of exploits?

See the underground prices here!