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

الملخص

بحسب VulDB • 04/09/2026

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

tls: device: إصلاح الكتابة خارج الحدود في tls_append_frag()

تم اكتشاف هذه المشكلة باستخدام syzkaller ونسخة محلية من syzbot تعمل فوق محاكاة إرجاع عبء عمل TLS (TLS offload emulation) على netdevsim؛ ولا يمكن الوصول إلى ملف tls_device.c عملياً إلا على جهاز يحتوي على بطاقة شبكة تدعم ميزة الإرجاع.

تقوم دالة tls_push_data() بفحص ما إذا كان السجل المفتوح لا يزال يتسع لقطعة إضافية في نهاية حلقة التكرار، لكن الخروج المبكر بسبب علم MSG_MORE يتجاوز هذا الفحص. يبقى السجل ساري المفعول حتى استدعاء النظام التالي مع عدد القطع الذي يمتلكه بالفعل، ولا تقوم tls_append_frag() بإجراء فحص أيضاً؛ لذا فإن كل عملية splice(SPLICE_F_MORE) لبايت أو بايتين إضافيين في وضع TLS_TX_ZEROCOPY_RO تضيف صفحة أنبوب غير مجمعة (non-coalescing pipe page)، ويتجاوز num_frags نهاية مصفوفة tls_record_info.frags[MAX_SKB_FRAGS]. بمجرد دفع السجل، تشغل الدالة tls_push_record() نفس الفهرس على sg_tx_data[MAX_SKB_FRAGS]، وتكتب عمليات sg_set_page() في موقع destruct_work الذي يليه مباشرةً، والذي يقوم بدوره استدعاء شجرة العمل (workqueue).

يعد حد البايت آمناً لأن عملية النسخ تنخفض إلى 0 وتتدفق الحلقة عبر الفحص نفسه؛ لكن عدد القطع لا يتمتع بمثل هذه التغذية الراجعة.

يجب دفع السجل بدلاً من إبقاء سجل كامل مفتوحاً، وهو ما تفعله مقبس TCP العادي - حيث تستخدم tcp_sendmsg_locked() دالة tcp_mark_push() والمتغير new_segment في كلٍ من مساري النسخ (copy) و MSG_SPLICE_PAGES، وتقوم tls_sw بالفعل بتعيين full_record عندما يمتلئ حلقة sk_msg، بغض النظر عن وجود علم MSG_MORE أم لا.

BUG: KASAN: slab-out-of-bounds in tls_append_frag ( net/tls/tls_device.c:269) Write of size 8 at addr ffff8881104d1530 by task tls_oob/450

CPU: 2 UID: 0 PID: 45

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

المصادر

Do you need the next level of professionalism?

Upgrade your account now!