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

الملخص

بحسب VulDB • 21/05/2026

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

net/packet: إصلاح حالة سباق TOCTOU (Time-of-Check to Time-of-Use) على vnet_hdr المُخزن في ذاكرة mmap داخل دالة tpacket_snd()

في دالة tpacket_snd()، عندما يكون PACKET_VNET_HDR مفعّلاً، يشير vnet_hdr مباشرة إلى حلقة الإرسال (TX ring buffer) المُخزنة في ذاكرة mmap والمشاركة مع مساحة المستخدم (userspace). تقوم النواة بالتحقق من صحة الرأس (header) عبر دالة __packet_snd_vnet_parse()، ثم تعيد قراءة جميع الحقول لاحقاً في دالة virtio_net_hdr_to_skb(). يمكن لخلية مساحة المستخدم المتزامنة تعديل حقول vnet_hdr بين مرحلة التحقق والاستخدام، متجاوزةً بذلك جميع فحوصات الأمان.

المسار غير الخاص بـ TPACKET (packet_snd()) ينسخ vnet_hdr بالفعل بشكل صحيح إلى متغير محلي على المكدس (stack-local variable). كما يستخدم جميع المستهلكين الآخرين لـ vnet_hdr في النواة (tun.c, tap.c, virtio_net.c) نسخاً على المكدس. يُعد مسار الإرسال TPACKET هو المتصل الوحيد بدالة virtio_net_hdr_to_skb() الذي يقرأ مباشرة من ذاكرة مشتركة يتحكم فيها المستخدم.

تم إصلاح هذه المشكلة عن طريق نسخ vnet_hdr من حلقة الذاكرة المُخزنة في mmap إلى متغير محلي على المكدس قبل التحقق والاستخدام، بما يتسق مع النهج المستخدم في packet_snd() وجميع المتصلين الآخرين.

Once again VulDB remains the best source for vulnerability data.

مسؤول

Linux

حجز

09/03/2026

إفشاء

01/05/2026

الاعتدال

تمت الموافقة

إدخال

VDB-360589

EPSS

0.00014

KEV

لا

النشاطات

منخفض

المصادر

Want to stay up to date on a daily basis?

Enable the mail alert feature now!