Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
uaf-2023-28205 — PoC CVE-2023-28205: ثغرة استخدام بعد التحرير في Apple WebKit | Kitploit
أدوات/GitHubGitHub/seregonwar/uaf-2023-28205
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالتعلم والتعليمتطوير الحمولاتاستغلال الملفات الثنائية
GitHubseregonwar/uaf-2023-28205

uaf-2023-28205

PoC CVE-2023-28205: ثغرة استخدام بعد التحرير في Apple WebKit

عرض المستودع
814منذ 8 أشهرلم تتم المراجعة بعد
الموقع الإلكتروني

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2023-28205: ثغرة الاستخدام بعد التحرير في Apple WebKit

تؤثر هذه الثغرة على Apple WebKit ويمكن استغلالها عبر محتوى ويب مُصمم بشكل خبيث، مما قد يسمح بتنفيذ تعليمات برمجية عشوائية في سياق عملية WebKit.

إصدار WebKit المتأثر الذي تم تحليله في هذا المستودع مبني على WebKit-613.1.17.1 (سلالة PlayStation / Safari 15.4).


الوصف

إثبات المفهوم يُطلق حالة استخدام بعد التحرير (UAF) عن طريق تأخير متعمد لتسجيل كائنات JavaScript مثل Map وDate أثناء عمليات الاستنساخ المهيكل.

نافذة التوقيت هذه تسمح لـ جامع القمامة في JavaScriptCore (GC) باستعادة كائنات لا تزال قيد الاستخدام منطقيًا، مما يؤدي إلى إلغاء الإشارة إلى مؤشرات قديمة أثناء استمرار التنفيذ.


السبب الجذري التقني (CVE-2023-28205)

المكوّن المتأثر

  • SerializedScriptValue
  • CloneDeserializer::deserialize()

السبب الجذري

تكمُن الثغرة في منطق إلغاء تسلسل الاستنساخ المهيكل، وتحديدًا في كيفية تتبع كائنات JavaScript المنشأة حديثًا أثناء إلغاء التسلسل الاسترجاعي.

في SerializedScriptValue.cpp، يستخدم مُلغي التسلسل حاويات WebKit القياسية مثل:

Vector<JSObject*, 32> outputObjectStack;
Vector<JSMap*, 4> mapStack;
Vector<JSSet*, 4> setStack;

حاويات Vector هذه لا يتم فحصها بواسطة جامع القمامة. إذا تم تشغيل دورة جمع قمامة أثناء إلغاء التسلسل (على سبيل المثال عبر ضغط الذاكرة أو تنفيذ JS مُعاد الدخول)، فقد يتم جمع الكائنات المشار إليها فقط بواسطة هذه الحاويات بشكل غير صحيح.

ومع ذلك، يستمر مُلغي التسلسل في استخدام هذه المؤشرات المعلقة، مما يؤدي إلى حالة استخدام بعد التحرير.

الإصلاح المفقود

التصحيح الأمني الرسمي لـ WebKit (commit c9880de) يستبدل هذه الحاويات بـ MarkedVector، وهي بنية مدركة لجامع القمامة تسجّل محتوياتها بشكل صحيح كجذور GC.

في الإصدار الذي تم تحليله:

  • MarkedVector غير مُنفّذ
  • CloneDeserializer لا يزال يستخدم Vector
  • GC لا يفحص هذه الأكوام المؤقتة للكائنات

هذا يؤكد أن الإصدار عُرضة بالكامل لـ CVE-2023-28205.


تحليل الانهيار

الانهيار التالي تم تشغيله بشكل موثوق بواسطة إثبات المفهوم ويتوافق مع إلغاء إشارة لمؤشر قديم بعد جمع القمامة (GC).

المؤشرات الرئيسية

  • الإشارة: SIGSEGV (11)
  • عنوان الخطأ: 0x0000000000000068
  • العملية: SceNKWebProcess
  • الوحدة: libSceNKWebKit.sprx

عنوان الخطأ 0x68 يشير إلى إلغاء إشارة لمؤشر قاعدة NULL مع إزاحة حقل كائن، وهو توقيع كلاسيكي للوصول إلى كائن JavaScript محرّر.

حالة المسجلات تؤكد:

  • RAX = 0x0 (قاعدة كائن NULL)
  • التنفيذ بالكامل داخل نطاق مستخدم WebKit
  • لا يوجد أي تدخل من النواة أو استدعاءات النظام

سلوك الانهيار هذا هو مظهر مباشر لثغرة الاستخدام بعد التحرير (UAF) في CloneDeserializer الموصوفة أعلاه.


تفريغ الانهيار

انقر لتوسيع تفريغ الانهيار
تنزيل الأداة