
مستودع بحثي لـ CVE-2026-80844 (DirtyAH6)، وهو تصعيد امتيازات محلي في نواة Linux عبر IPv6 AH6/XFRM، مع PoC وتحليل السبب الجذري والتصحيح.
DirtyAH6
CVE-2026-80844 هي ثغرة في نواة لينكس تؤثر على النظام الفرعي Authentication Header (AH6) / XFRM الخاص بـ IPv6.
تنتج الثغرة عن تحقق غير كافٍ من حقل segments_left في ترويسة التوجيه
IPv6 Routing Header، مما قد يؤدي إلى عملية وصول إلى الذاكرة خارج الحدود
وتلف في ذاكرة النواة.
هذا المستودع مخصص للبحث الأمني المصرّح به، وتحليل الثغرات، ومسابقات CTF، والاختبار الدفاعي فقط.
لا تستخدم هذا البحث ضد أنظمة لا تملكها أو لا تملك إذنًا صريحًا لاختبارها.
| الحقل | التفاصيل |
|---|---|
| CVE | CVE-2026-80844 |
| الاسم الرمزي | DirtyAH6 |
| المكوّن | Linux Kernel |
| النظام الفرعي | IPv6 / XFRM / AH6 |
| نوع الثغرة | تصعيد الصلاحيات المحلي |
| ناقل الهجوم | محلي |
| تعقيد الهجوم | منخفض |
| الصلاحيات المطلوبة | منخفضة |
| تفاعل المستخدم | لا يوجد |
| CVSS v3.1 | 7.8 — عالية |
| الكود المتأثر | net/ipv6/ah6.c |
| الحالة | تم الترقيع |
توجد الثغرة في مسار معالجة IPv6 AH6.
يقوم الكود المتأثر بإجراء معالجة لترويسة التوجيه من خلال:
net/ipv6/ah6.c
على وجه التحديد، تتضمن المنطق القابل للاستغلال:
ipv6_rearrange_rthdr()
فشلت الدالة في التحقق بشكل كافٍ من العلاقة بين:
hdrlen
و:
segments_left
يمكن للمهاجم القادر على تزويد حزمة IPv6 مصممة خصيصًا أن يتسبب بذلك في قيام النواة بالعمل على ذاكرة خارج حدود ترويسة التوجيه المتوقعة.
قد يؤدي هذا إلى:
Malformed IPv6 packet
│
▼
AH6 / XFRM processing
│
▼
Invalid routing-header state
│
▼
Out-of-bounds memory operation
│
▼
Kernel memory corruption
│
▼
Potential privilege escalation
المشكلة الأساسية هي عدم كفاية التحقق من قيمة segments_left في ترويسة التوجيه IPv6.
من حيث المفهوم، يمكن تمثيل الحالة القابلة للاستغلال على النحو التالي:
segments_left > available routing-header addresses
يجب أن يضمن النواة (kernel) أن عدد المقاطع المطلوبة من ترويسة التوجيه (routing header) متوافق مع الطول الفعلي للترويسة قبل معالجة بيانات العنوان المرتبطة بها.
وبدون هذا التحقق، قد تعمل عمليات الذاكرة اللاحقة خارج حدود المخزن المؤقت الصالح.
قد يسمح الاستغلال الناجح للمهاجم الذي يمتلك القدرات/البيئة المحلية المطلوبة بإفساد ذاكرة النواة.
تشمل العواقب المحتملة ما يلي:
تعتمد قابلية الاستغلال الفعلية على إعدادات النواة، ومساحات الأسماء/القدرات المتاحة، وظروف بيئية أخرى.
net/ipv6/ah6.c
المعالجة ذات الصلة:
AH6
└── IPv6 Routing Header
└── ipv6_rearrange_rthdr()
يتعلق السيناريو الإشكالي ببيانات وصفية غير متسقة لترويسة التوجيه.
على سبيل المثال، من حيث المفهوم:
hdrlen → describes a limited number of addresses
segments_left → claims more addresses than are available
يجب رفض هذا عدم التطابق قبل أن يقوم النواة بإعادة ترتيب العناوين.
يقدّم الإصلاح في المنبع التحقق من قيمة segments_left الخاصة بترويسة التوجيه
قبل أن تقوم النواة بتنفيذ العملية القابلة للاستغلال.
الالتزام المرتبط في المنبع هو:
7bad4bda74dc4713f398d3b7624ff05478e3a568
xfrm: ah6: validate routing header segments_left
يمكن تلخيص الإصلاح الأمني على النحو التالي:
Before:
Trust segments_left
↓
Rearrange addresses
↓
Potential OOB access
After:
Validate segments_left
↓
Reject malformed header
↓
Safe AH6 processing
تعتمد الإصدارات المتأثرة على تاريخ الترقيع الرجعي (backport) لدى المنبع والمورّد.
ينبغي على المستخدمين التحقق من الاستشارة الأمنية الخاصة بتوزيعهم بدلاً من الاعتماد على رقم الإصدار في المنبع وحده.
تشمل أمثلة إصدارات المنبع المستقرة التي تم ترقيعها ما يلي:
| فرع النواة | الإصدار المُرَقَّع |
|---|---|
| 5.10 | 5.10.270 |
| 5.15 | 5.15.221 |
| 6.1 | 6.1.188 |
| 6.6 | 6.6.157 |
| 6.12 | 6.12.109 |
| 6.18 | 6.18.50 |
| 7.2 | 7.2.4 |
تحقق من النواة قيد التشغيل:
uname -a
أو:
uname -r
تحقق من معلومات النواة التفصيلية:
cat /proc/version
بالنسبة لأنظمة Debian/Kali:
apt-cache policy linux-image-amd64
للأنظمة القائمة على RPM:
rpm -q kernel
غالبًا ما تُجري نوى التوزيعات عملية backport لإصلاحات الأمان دون تغيير الإصدار الأصلي بطريقة واضحة. تحقّق دائمًا من استشارة/سجل التغييرات الخاص بالمورّد.
التخفيف الأساسي هو الترقية إلى نواة تتضمن إصلاح الأمان.
Debian/Kali:
sudo apt update
sudo apt full-upgrade
ثم أعد التشغيل:
sudo reboot
تحقّق:
uname -r
بالنسبة لأنظمة الإنتاج، راجع الاستشارة الأمنية الرسمية لتوزيعة Linux قبل تطبيق تحديثات النواة.
البيئة المعزولة الموصى بها:
Host
│
├── Kali Linux
│
└── Vulnerable Linux VM
│
├── Debug kernel
├── IPv6 enabled
├── AH6/XFRM support
└── Kernel symbols
أدوات تصحيح الأخطاء المفيدة:
gdb
gef
pwndbg
crash
dmesg
pahole
objdump
readelf
تصحيح أخطاء النواة:
sudo dmesg -w
افحص رموز النواة:
cat /proc/kallsyms
CVE-2026-80844-DirtyAH6/
│
├── README.md
│
├── exploit/
│ ├── poc.c
│ └── Makefile
│
├── analysis/
│ ├── vulnerability.md
│ ├── root-cause.md
│ └── patch-analysis.md
│
├── kernel/
│ ├── vulnerable.patch
│ └── fixed.patch
│
├── docs/
│ └── research-notes.md
│
├── screenshots/
│
└── LICENSE
ينبغي تنفيذ مواد إثبات المفهوم (PoC) داخل بيئة مختبرية معزولة فقط.
يركّز التنفيذ البحثي على إثبات حالة ترويسة التوجيه (Routing Header) المشوّهة في IPv6 ومراقبة سلوك النواة (kernel) الناتج عن ذلك.
سير العمل البحثي المتوقع:
Craft malformed IPv6 header
↓
Transmit inside isolated lab
↓
AH6/XFRM processing
↓
Observe kernel behavior
↓
Capture dmesg / crash information
↓
Compare vulnerable vs patched kernel
مثال على المراقبة:
sudo dmesg -w
يجب أن ترفض النواة المُرقَّعة الإدخال المشوّه دون الوصول إلى عملية الذاكرة المعرضة للخطر.