Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-36355 — CVE-2026-36355: Realtek rtl819x Jungle SDK - قراءة/كتابة ذاكرة النواة بدون مصادقة عبر ioctls التصحيح | Kitploit
أدوات/GitHubGitHub/totekuh/cve-2026-36355
أمان الأنظمة المدمجةتصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالأمن الشبكات اللاسلكيةأمن الأجهزةاستغلال الملفات الثنائية
GitHubtotekuh/cve-2026-36355

CVE-2026-36355

CVE-2026-36355: Realtek rtl819x Jungle SDK - قراءة/كتابة ذاكرة النواة بدون مصادقة عبر ioctls التصحيح

عرض المستودع
منذ 3 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2026-36355: Realtek rtl819x Jungle SDK - قراءة/كتابة في ذاكرة النواة دون مصادقة عبر استدعاءات ioctl للتصحيح

  • CVE: CVE-2026-36355
  • CWE: CWE-782, CWE-787, CWE-200
  • المكتشف: Daniil Gordeev
  • تاريخ الإفصاح: 2026-05-03

الملخص

يُعرّض مُشغّل نواة Wi-Fi rtl8192cd في حزمة "Jungle SDK" خارج الشجرة من Realtek rtl819x استدعاءَي IOCTL — write_mem (0x89F5) وread_mem (0x89F6) - دون أي فحوصات للتحكم في الوصول. أي مستخدم محلي قادر على فتح واجهة شبكة لاسلكية مدعومة من المُشغّل يمكنه قراءة أو كتابة ذاكرة افتراضية عشوائية في النواة، ما يؤدي مباشرةً إلى صلاحيات root.

المعالجات مُفعَّلة عبر _IOCTL_DEBUG_CMD_ في 8192cd_cfg.h، وهو معرَّف بشكل غير مشروط (دون #ifdef DEBUG)، لذا تُضمَّن مجموعة أوامر التصحيح في كل بناء إنتاجي.

يحقق استغلال مرجعي (kpwn) uid=0 من قشرة غير ممتازة، مع صفر عناوين مبرمجة - إذ يُكتشف تلقائيًا في وقت التشغيل كلٌّ من تخطيط task_struct وموقع init_task، ما يجعله قابلًا للنقل عبر إصدارات النواة وبنيات OEM.

المنتجات المتأثرة

تقع الثغرة في مُشغّل نواة Wi-Fi في Realtek rtl819x Jungle SDK، بجميع الإصدارات المعروفة حتى v3.4.14B. لا يوجد إصلاح وقت الإفصاح. أما rtlwifi / rtw88 / rtw89 في Linux الرئيسية فهي قواعد أكواد مختلفة وغير متأثرة.

يُصرَف جوهر المُشغّل المشترك إلى عدة أصناف (rtl8192cd, rtl8192es, rtl8192ee, rtl8192fe, rtl8188ee، وغيرها). أي بناء Jungle SDK يتضمن مُشغّل Wi-Fi يكون متأثرًا.

من المحتمل تأثره — يتطلب تحققًا لكل منتج

يُعاد توزيع Realtek Jungle SDK على نطاق واسع بموجب عقود OEM. البائعون المذكورون في قائمة بائعي CVE-2021-35395 (التي استهدفت مكوّنًا مختلفًا في مساحة المستخدم من الحزمة نفسها) يشملون D-Link وTOTOLINK وTenda وNEC وI-O DATA وElecom وBuffalo وHumax وH3C وIP-COM. ما إذا كان كل خط منتجات محدد يُصدَر مع مُشغّل النواة المُعرَّض للخطر يتطلب فحص إصدار المصدر GPL الخاص بكل منتج؛ لا تؤكد هذه النشرة ذلك دون تحقق مستقل.

بيئة الاختبار

الجهازOrtel 4G LTE CPE (OEM: MeiG Smart FORGE_SLT711)
SoCQualcomm MDM9607, ARMv7 Cortex-A7
النواةLinux 3.18.48
الوحدة

مؤكَّد: كتابة 0xDEADBEEF إلى .bss الخاصة بالوحدة مع إعادة القراءة والاستعادة؛ وتصعيد امتيازات محلي (LPE) كامل من uid=1000 إلى uid=0 عبر اجتياز init_task والكتابة فوق بيانات الاعتماد، من قشرة غير ممتازة.

التفاصيل التقنية

السبب الجذري

في 8192cd_cfg.h:

root@kitploit:~
#define _IOCTL_DEBUG_CMD_

لا يخضع لشرط #ifdef DEBUG. مجموعة أوامر التصحيح مضمنة في كل بناء إنتاجي.

المعالجات المُعرَّضة للخطر

يوجّه مُوزِّع rtl_ioctl() في المُشغّل 0x89F5 و0x89F6 (ضمن نطاق SIOCDEVPRIVATE+5/+6 القياسي لاستدعاءات IOCTL الخاصة التي تستخدمها مُشغّلات اللاسلكي لامتدادات البائع) إلى write_mem وread_mem. يحلل المعالجان سلسلة يوفّرها المستخدم:

  • القراءة: dw,<addr>,<count> — قراءة count كلمة 32-بت من العنوان الافتراضي في النواة addr
  • الكتابة: dw,<addr>,<count>,<value> — كتابة count كلمة 32-بت من value إلى addr

يُحلَّل العنوان عبر _atoi(base 16)، ويُمرَّر إلى memcpy() مقابل مساحة العنوان الافتراضية للنواة، ثم تُنسَخ النتيجة إلى الخلف عبر copy_to_user(). ولا يوجد:

  • أي فحص capable()
  • أي فحص access_ok() على العنوان
  • أي فحص حدود لنطاق العنوان
  • أي قفل — تشترك جميع استدعاءات IOCTL الـ 59 في مجموعة أوامر التصحيح في مخزن عام واحد بحجم 2000 بايت (tmpbuf1) داخل .bss

بدائية القراءة محدودة بـ 128 بايت لكل استدعاء؛ بينما تقبل بدائية الكتابة أي طول.

الفجوة نفسها في التحكم بالوصول تنطبق على معالجات أخرى في مجموعة التصحيح (قراءة/كتابة سجلات العتاد عبر 0x89F3/0x89F4/0x89F8–0x89FD، كتابات MIB عبر 0x89F1، قراءة/كتابة eFuse، وضع اختبار التصنيع). يمكن الوصول إليها عبر مسار الكود نفسه، وتستحق تدقيقًا كاملًا من أي جهة تصحح هذه الثغرة.

إثبات المفهوم

kpwn - uid=1000 إلى uid=0 على MeiG FORGE_SLT711 (Ortel 4G LTE CPE)، النواة 3.18.48

الاستغلال المرجعي kpwn.c (منشور إلى جانب هذه النشرة):

  • يعمل كأي مستخدم غير ممتاز، دون الحاجة إلى صلاحيات root.
  • يكتشف تلقائيًا إزاحات task_struct (comm, cred, tasks, pid) باجتياز init_task، الذي يُحدَّد موقعه هو الآخر عبر مسح قسري لنطاق .data في النواة.
  • يكتشف تلقائيًا الواجهة المُعرَّضة للخطر بفحص كل /sys/class/net/* بحثًا عن بدائية القراءة.
  • 44 استدعاء IOCTL عندما يكون /proc/kallsyms قابلًا للقراءة، ونحو 7600 استدعاء IOCTL عندما يكون kptr_restrict=2 (مسار المسح الكامل لـ .data). يمنح قشرة جذر بشكل غير مشروط في كل تشغيل اختبار.
root@kitploit:~
# Build:
arm-linux-gnueabi-gcc -static -O2 -o kpwn kpwn.c

# Run as unprivileged user:
$ id
uid=1000(pwn) gid=3003(inet) ...
$ /tmp/kpwn
kpwn — RTL8192CD kernel LPE
[*] Scanning interfaces...
[+] wlan0 — read primitive confirmed
[*] Resolving init_task...
[+] init_task @ 0xc08ecb38
[+] comm=0x3a8 cred=0x3a4 tasks=0x250 pid=0x2c0
[+] cred=0xed3a4500 uid=1000 gid=3003
[*] Overwriting credentials...
[+] uid=0 euid=0 gid=0 egid=0
*** GOT ROOT *** uid=1000 -> 0 (44 ioctls)
# id
uid=0(root) gid=0(root) groups=0(root)
تنزيل الأداة
rtl8192es.ko
التاريخ2026-02-23