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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/bytev0rtex/cve-2026-65343
أمان iOSتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةأمن الجوالاستغلال الملفات الثنائية
GitHubbytev0rtex/cve-2026-65343

CVE-2026-65343

إثبات المفهوم لـ CVE-2026-65343، قراءة خارج الحدود في AppleKeyStore تُسرّب مؤشرات النواة لكسر KASLR على iOS 26.6. يتضمن التقاط مقبض ACM عبر DYLD_INTERPOSE وفحصًا عبر محددات AKS.

عرض المستودع
1منذ 9س 41دلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-65343 — قراءة خارج الحدود في AppleKeyStore (كسر KASLR)

المكوّن: امتداد النواة AppleKeyStore — _LibSer_SEPControl_Deserialize
المتأثر: iOS / iPadOS 26.6 (23G71) والإصدارات الأقدم
تم الإصلاح في: iOS / iPadOS 26.6.1 (23G83)
النوع: قراءة خارج الحدود في إلغاء تسلسل رسائل التحكم SEP
الأثر: تسريب مؤشرات النواة ← كسر KASLR من عملية معزولة (sandboxed) بدون صلاحيات (عبر التقاط مقبض ACM باستخدام DYLD_INTERPOSE)


الاعتمادات

اكتُشف بواسطة: Drinor Selmanaj (Sentry)، Surya Narayan Kushwaha
(وفق نشرة Apple الأمنية — iOS 26.6.1)


السبب الجذري

يقوم _LibSer_SEPControl_Deserialize في امتداد النواة AppleKeyStore بنشر زوج (payload_ptr, declared_length) من مخزن رسائل ACM (Credential Manager) إلى مساحة المستخدم عبر copyout()، دون التحقق من أن declared_length ≤ remaining.

بتزويد declared_length = 0x800، ينسخ السائق حوالي 0x7E8 بايتًا بعد نهاية مخزن رسائل ACM في النواة — ليقرأ في تخصيصات كومة (heap) مجاورة للنواة. تحتوي تلك المناطق المجاورة على مؤشرات نواة (0xfffffff0xxxxxxxx) يمكن استخدامها لحساب إزاحة KASLR.

root@kitploit:~
; _LibSer_SEPControl_Deserialize (المسار المتأثر، 26.6 / 23G71)
ldr  w2, [acm_msg + declared_length_offset]  ; 0x800 يتحكم به المستخدم
; لا يوجد تحقق: w2 <= (acm_msg_end - payload_ptr) ← مفقود
bl   copyout                                  ; ينسخ w2 بايتًا إلى مساحة المستخدم

التقاط مقبض ACM (DYLD_INTERPOSE)

يتم حظر استدعاء IOServiceOpen("AppleKeyStore") المباشر بواسطة الحماية (sandbox) على التطبيقات المثبتة جانبيًا (sideloaded). ومع ذلك، فإن مسار توقيع المفاتيح في Secure Enclave عبر Security.framework يستدعي IOConnectCallMethod داخل العملية بمقبض جلسة ACM حقيقي.

يستخدم إثبات المفهوم (PoC) خطاف __DATA,__interpose (الذي يعمل عند تحميل dyld، قبل جعل __DATA_CONST للقراءة فقط — fishhook محظور على iOS 26 بسبب حماية DATA_CONST):

  1. تفعيل علامة التقاط الـ interpose
  2. SecKeyCreateRandomKey(kSecAttrTokenIDSecureEnclave) ← SecKeyCreateSignature() ← استدعاء IOConnectCallMethod داخل العملية بمقبض ACM حقيقي
  3. التقاط (conn, handle[16])
  4. إعادة التشغيل بـ declared_length = 0x800 عبر 163 محدد AKS
  5. فحص المخرجات بحثًا عن مؤشرات نواة 0xfffffff0xxxxxxxx ← حساب إزاحة KASLR

سلوك إثبات المفهوم (PoC)

ينفّذ poc_aks_oob.m سلسلة التقاط مقبض ACM الكاملة وسلسلة استكشاف القراءة خارج الحدود:

  • إنشاء مفتاح P-256 في Secure Enclave (kSecAttrAccessibleAfterFirstUnlock، بدون قياسات حيوية)
  • توقيع رسالة 32 بايتًا لتفعيل استدعاء AKS IOKit داخل العملية
  • إعادة التشغيل بـ declared_length = 0x800 عبر جميع محددات AKS الـ 163
  • طباعة أي مؤشرات نواة موجودة عند KPTR @+XXXX = 0xfffffff0YYYYYYYY
  • محاولة حساب إزاحة KASLR من إزاحة رمز AKS معروف

إذا تم توجيه توقيع مفتاح SE عبر XPC الخاص بـ secd بدلاً من داخل العملية، يستخدم الاستكشاف الاحتياطي مقبضًا صفريًا (يؤكد إمكانية الوصول إلى مسار القراءة خارج الحدود؛ ستفشل جميع المحددات في التحقق من ACM، لكن مسار VNOP مؤكد).


ملاحظة iOS 26: fishhook محظور

على iOS 26، يتم تعيين __DATA_CONST (الذي يحتوي على GOT) للقراءة فقط قبل تشغيل أي كود داخل العملية. تؤدي عمليات الكتابة إلى GOT في وقت التشغيل (كما يستخدمها fishhook) إلى KERN_PROTECTION_FAILURE → SIGBUS. يعمل DYLD_INTERPOSE عبر __DATA,__interpose لأن dyld يعالج جدول الـ interpose في وقت تحميل الصورة، قبل أن تفرض النواة حماية __DATA_CONST.


المتطلبات

  • iOS 26.6 (23G71) أو إصدار أقدم
  • الوصول إلى Secure Enclave (kSecAttrTokenIDSecureEnclave) — متاح لأي تطبيق مثبّت جانبيًا بدون صلاحيات
  • لا حاجة للهروب من الحماية (sandbox): استدعاء AKS IOKit يتم داخل العملية عبر Security.framework

البناء

root@kitploit:~
# مشروع Xcode — اربط مع Security.framework و Foundation.framework
clang -arch arm64 \
      -isysroot $(xcrun --sdk iphoneos --show-sdk-path) \
      -framework Security -framework Foundation \
      -o poc poc/poc_aks_oob.m

codesign -s "Apple Development" --entitlements ent.plist poc

الحد الأدنى من الصلاحيات (ent.plist):

root@kitploit:~
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict>
    <key>keychain-access-groups</key>
    <array><string>$(AppIdentifierPrefix)com.research.poc65343</string></array>
</dict></plist>

الجدول الزمني

التاريخالحدث
2026-08-17إصدار iOS 26.6.1 مع الإصلاح
2026-08-17نشر اعتمادات Apple في النشرة الأمنية

المراجع

  • نشرة Apple الأمنية — iOS 26.6.1
تنزيل الأداة