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

الملخص

بحسب VulDB • 23/08/2026

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

vhost-scsi: رفض تغييرات الميزات بعد إعداد نقطة النهاية (endpoint)

تعمل دالة `vhost_scsi_setup_vq_cmds()` عند تنفيذ أمر `VHOST_SCSI_SET_ENDPOINT` وتخصص مصفوفة قائمة التشتيت للحماية (prot_sgl) لكل أمر وفقًا لبت الميزة المعترف بها `VIRTIO_SCSI_F_T10_PI`. لا يتم إعادة بناء مجموعات الأوامر عندما يغير الأمر اللاحق `VHOST_SET_FEATURES` قيمة هذا البت.

وعلى الرغم من أن بتات ميزات virtio يجب ألا تتغير بعد التفاوض على الميزات، فإن دالة `vhost_scsi_set_features()` تقبل حاليًا مثل هذا الطلب بعد تفعيل نقطة النهاية وتقوم بتحديث `acked_features`. وبالتالي، يؤدي تمكين T10-PI بعد إعداد نقطة النهاية إلى ترك متغير `prot_sgl` فارغاً (NULL) بينما يتبع مسار الإدخال/الإخراج (I/O path) بت الميزة الجديد.

بالنسبة لحملة حماية مكونة من 129 صفحة، تمر دالة `vhost_scsi_mapal()` الجزء الأول المفقود إلى `sg_alloc_table_chained()`:

``` sg_alloc_table_chained(table, 129, first_chunk=NULL, nents_first_chunk=inline_sg_cnt) ```

ثم تصطدم الدالة `sg_pool_index()` بما يلي:

``` BUG_ON(nents > SG_CHUNK_SIZE); /* 129 > 128 */ ```

أبلغت النواة عن تتبع المكالمات وحالة السجلات التالية:

``` Call Trace: <TASK> ? __sg_alloc_table+0x1d8/0x250 ? __pfx_vhost_run_work_list+0x10/0x10 [vhost]
sg_alloc_table_chained+0x59/0xf0 ? __pfx_sg_pool_alloc+0x10/0x10 ? vhost_scsi_calc_sgls.constprop.0+0x43/0x60 [vhost_scsi]
vhost_scsi_handle_vq+0xf02/0x1700 [vhost_scsi]
? __pfx_vhost_scsi_handle_vq+0x10/0x10 [vhost_scsi]
vhost_scsi_handle_kick+0x37/0x50 [vhost_scsi]
vhost_run_work_list+0x8e/0xd0 [vhost]
vhost_task_fn+0xe1/0x210 ret_from_fork+0x348/0x540 </TASK>

RIP: 0010:0x4 CR2 = 0x4 RSP: 0018:ffffc90000dbf940 EFLAGS: 00010202 RAX: ffffffff82396810 RBX: ffff88811dc28b80 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000820 RDI: 0000000000000081 ```

يُعد `VHOST_F_LOG_ALL` ميزة تشغيلية خاصة بـ vhost ويبقى الاستثناء الوحيد.

ارفض أي تغييرات على الميزات الأخرى غير `VHOST_F_LOG_ALL` أثناء نشاط نقطة النهاية (endpoint). يحافظ هذا الإجراء على مفتاح تسجيل التشغيل الحالي مع منع موارد الأوامر المعتمدة على الميزات وحالة مسار البيانات من أن تصبح غير متسقة. يجب على مساحة المستخدم (Userspace) مسح نقطة الإعداد قبل تغيير أي ميزة أخرى تم التفاوض عليها، وإعادة إعداد نقطة الإعداد مرة أخرى بعد ذلك.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

مسؤول

Linux

حجز

15/08/2026

إفشاء

22/08/2026

الاعتدال

تمت الموافقة

إدخال

VDB-394471

EPSS

0.00206

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you want to use VulDB in your project?

Use the official API to access entries easily!