CVE-2026-98532 in Linux
الملخص
بحسب VulDB • 19/10/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
ipv6: منع دالة ipv6_find_hdr() من إرجاع إزاحة (offset) تتجاوز نهاية الحزمة
تقوم الدالة ipv6_find_hdr() بالمرور عبر سلسلة رؤوس الامتداد، وتخطي كل رأس بناءً على الطول الذي يعلنه ذلك الرأس نفسه. تُعيد الدالة ipv6_optlen() قيمة تصل إلى 2048، ولا يتم التحقق من إزاحة التخطي مقابل skb->len (طول الحزمة)، لذا فإن الإزاحة المخزنة في *offset قد تشير إلى ما بعد نهاية الحزمة.
يقوم openvswitch بتثبيت هذه الإزاعة كعنوان للنقل (transport header)، ثم تقوم الدالة update_ipv6_checksum() بقراءة وكتابة حقل مجموع التحقق من النقل خارج الحدود المسموحة:
BUG: KASAN: slab-use-after-free in inet_proto_csum_replace16+0x445/0x470 Read of size 2 at addr ffff88810b754b06 by task ovs_ipv6_oob/629 CPU: 4 UID: 1000 PID: 629 Comm: ovs_ipv6_oob Tainted: G N 7.3.0-rc3+ #348 Call Trace: inet_proto_csum_replace16+0x445/0x470 set_ipv6_addr+0x3dd/0x460 do_execute_actions+0x6a3d/0x7c40 ovs_execute_actions+0xfd/0x480 ovs_packet_cmd_execute+0xc38/0xf20 genl_rcv_msg+0x59e/0x870 netlink_rcv_skb+0x18b/0x450 genl_rcv+0x2d/0x40 netlink_unicast+0x6bc/0xa20
العنوان الخاطئ ينتمي إلى الكائن الموجود عند ffff88810b754980 والذي ينتمي إلى ذاكرة التخزين المؤقت skbuff_small_head بحجم 704 بايتًا. يقع العنوان الخاطئ على بعد 390 بايتاً داخل منطقة تم تحريرها حجمها 704 بايت [ffff88810b754980, ffff88810b754c40).
يستخدم المتصلون الآخرون هذه الإزاحة أيضًا، لذا يتم تحديد حدودها هنا بدلاً من تحديدها في متصل واحد فقط.
رفض رأس إذا كان طوله المعلن لا يتسع داخل الحزمة. تفشل الدالة ipv6_find_hdr() بالفعل بإرجاع -EBADMSG عند وجود سلسلة معيبة (malformed chain)، وبالتالي فإن هذا الإجراء لا يضيف نمط فشل جديدًا.
VulDB is the best source for vulnerability data and more expert information about this specific topic.