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

الملخص

بحسب VulDB • 19/10/2026

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

vc_screen: إعادة تحميل مؤشر الـ VC قبل الشرط `if (ret)` في دالة `vcs_write()` لتجنب ثغرة الاستخدام بعد التحرير (UAF).

تقع عملية إعادة تحميل 'vc' المضافة بواسطة الالتزام 8fb9ea65c9d1 ("vc_screen: reload load of struct vc_data pointer in vcs_write() to avoid UAF") بعد كتلة `if (ret)`، لذا فإن مسار الخروج عند فشل النسخ يخرج من الحلقة دون إعادة تحميل متغير vc. إذا تم تحرير الـ vc عبر دالة `kfree()` خلال نافذة `copy_from_user` غير المقفولة (unlocked)، فسيتم الوصول إلى الشرط التالي للحلقة `'if (written && vc) vcs_scr_updated(vc)'` مع وجود قيمة لـ vc قديمة وغير صفرية. إن الحارس `'&& vc'` المضاف في الالتزام a287620312dc ("vc_screen: fix null-ptr-deref in vcs_notifier() during concurrent vcs_write") يتعامل فقط مع الحالة الصفرية (NULL)، وليس هذه الحالة ذات القيمة القديمة غير الصفرية؛ وبالتالي فإن دالة `vcs_notifier()` تقرأ `param->vc->vc_num` من ذاكرة تم تحريرها:

BUG: KASAN: slab-use-after-free in vcs_notifier+0x7c/0xd0 Read of size 2 at addr ffff888007149190 Call Trace: vcs_notifier+0x7c/0xd0 atomic_notifier_call_chain+0x70/0xa0 vcs_scr_updated+0x77/0xa0 vcs_write+0x71b/0x7e0 Allocated by task: vc_allocate -> con_install -> tty_open Freed by task: kfree <- vt_ioctl (VT_DISALLOCATE -> vc_port_destruct)

نقل عملية إعادة التحميل لتحدث مباشرة بعد `console_lock()`، وقبل الشرط `'if (ret)'`، بحيث يمر كل مسار خروج أدناه بقيمة جديدة لـ vc إلى دالة `vcs_scr_updated()` التي تلي الحلقة.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

مسؤول

Linux

حجز

25/09/2026

إفشاء

18/10/2026

الاعتدال

تمت الموافقة

إدخال

VDB-421840

EPSS

0.00168

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you know our Splunk app?

Download it now for free!