CVE-2026-99062 in Linux
الملخص
بحسب VulDB • 23/10/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
vsock/virtio: حساب البايتات غير المقروءة فقط في read_skb()
بعد استلام جزء من التدفق (partial stream receive)، يتتبع متغير rx_bytes اللاحقة (suffix) غير المقروءة بينما تغطي buf_used وائتمان الطرف الآخر (peer credit) الحزمة بأكملها. تقوم دالة virtio_transport_read_skb() بإزالة هذه الحزمة من الطابور ولكن تمرر pkt_len لكلا العدادين، مما يؤدي إلى انخفاض قيمة rx_bytes دون الصفر (underflow).
في تدفق متصل ذو CID_LOCAL وحكم SK_SKB، أدى قراءة بحجم 40 بايت من حزمة حجمها 100 بايت إلى إبلاغ SIOCINQ بالقيمة -40، وإرجاع ELOOP كاستجابة فارغة لـ recv، والإبلاغ عن أن المقبس الفارغ قابل للقراءة في poll. بعد فصل الحكم (verdict detach)، أدى استلام 40 بايت إلى إعادة تعيين العداد إلى الصفر وإخفاء تلك البايتات المكدسة حتى وصول بايت إضافي واحد. حافظ التنفيذ المُصلح على توازن العداد وكشف جميع البيانات المكدسة فوراً.
تم اكتشاف هذه الثغرة أثناء مراجعة يدوية للمصدر بمساعدة نموذج لغوي كبير (LLM) لحساب استلام VSOCK، وذلك بعد إعادة تقييم دالة virtio_transport_read_skb() في أعقاب CVE-2024-50169.
اطرح من rx_bytes فقط طول skb->len مطروحاً منه إزاحة VSOCK. احتفظ بطول الحزمة الكامل لـ buf_used وائتمان الطرف الآخر (peer credit).
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.