CVE-2026-43501
ipv6: rpl: احجز مساحة mac_len احتياطية عندما ينمو SRH بعد إعادة الضغط
- تم النشر
- 21/05/2026
- محدث
- 08/09/2026
- تخصيص CNA
- Linux
- الأدلة المرصودة
- 07/08/2026
CVSS الأساسي
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Hمنخفض · الثلاثين يومًا القادمة
- المئوية
- 49.4%
- تاريخ الموديل
- 21/09/2026
EPSS هو تقدير إحصائي، وليس يقينًا أو مقياسًا للتأثير. ادمجها مع CVSS وحالة KEV والتعرض وبيئتك.
ملخص
في نواة لينكس، تم حلّ الثغرة الأمنية التالية: ipv6: rpl: احجز مساحة رأس mac_len عندما تكبر ترويسة SRH المعاد ضغطها. تزيل الدالة ipv6_rpl_srh_rcv() ضغط ترويسة توجيه المصدر RFC 6554، وتستبدل المقطع التالي في ipv6_hdr->daddr، وتعيد الضغط، ثم تسحب الترويسة القديمة وتدفع الترويسة الجديدة بالإضافة إلى ترويسة IPv6 مرة أخرى. يمكن أن تكون الترويسة المعاد ضغطها أكبر من المستقبَلة عندما يؤدي التبديل إلى تقليل طول البادئة المشتركة التي تتشاركها المقاطع مع daddr (CmprI=0، CmprE>0، seg[0][0] != daddr[0] يعطي الحد الأقصى +8 بايت). كان استدعاء pskb_expand_head() مقيدًا بالشرط segments_left == 0، لذا في المقاطع السابقة كان الدفع يستهلك مساحة رأس دون فحص. بمجرد أن تُبقي الدالة skb_push() أقل من skb->mac_len بايت أمام البيانات، فإن استدعاء skb_mac_header_rebuild() للدالة: skb_set_mac_header(skb, -skb->mac_len); سيخزّن (data - head) - mac_len في حقل mac_header من النوع u16، والذي يلتف إلى ~65530، ثم تكتب الدالة memmove() التالية mac_len بايت حوالي 64KiB خلف skb->head. تصل حزمة AF_INET6/SOCK_RAW/IPV6_HDRINCL واحدة عبر lo مع SRH من النوع 3 بمقطعين (CmprI=0، CmprE=15) إلى مساحة رأس مقدارها 8 بعد مرور واحد؛ ويُبلغ KASAN عن كتابة خارج الحدود (OOB) بمقدار 14 بايت في ipv6_rthdr_rcv. أصلح هذا بتوسيع الرأس كلما كانت المساحة المتبقية أقل من حجم الدفع زائد mac_len، واطلب ذلك المقدار الإضافي بحيث تتسع ترويسة MAC المعاد بناؤها بعد ذلك.
المصادر
1- cybermeowfia-termuxاستغلال
أداة تصعيد الامتيازات ومدير الجذر لـ Termux - CVE-2026-43501
الاستخدام المسؤول
استخدم معلومات الثغرات الأمنية فقط على الأنظمة التي تمتلكها أو المرخص لها باختبارها. يرتبط Kitploit ببيانات تعريف البحث العامة ولا يخزن أكواد الاستغلال أو الحمولات الضارة.