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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-5281-CVE-2026-11057-fullchain — سلسلة استغلال كاملة لمتصفح Chromium على أندرويد تجمع بين تسريب معلومات CVE-2026-11057 واستخدام بعد التحرير CVE-2026-5281 لتحقيق اختطاف جدول الدوال الافتراضية وتنفيذ تعليمات برمجية عشوائية. | Kitploit
أدوات/GitHubGitHub/jaf0rk/cve-2026-5281-cve-2026-11057-fullchain
أمان أندرويدأطر الاستغلالتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الجوالاستغلال الملفات الثنائية
GitHub

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
jaf0rk/cve-2026-5281-cve-2026-11057-fullchain

CVE-2026-5281-CVE-2026-11057-fullchain

سلسلة استغلال كاملة لمتصفح Chromium على أندرويد تجمع بين تسريب معلومات CVE-2026-11057 واستخدام بعد التحرير CVE-2026-5281 لتحقيق اختطاف جدول الدوال الافتراضية وتنفيذ تعليمات برمجية عشوائية.

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

CVE-2026-5281+CVE-2026-11057 سلسلة استغلال كاملة لنظام أندرويد

الجهاز

Pixel 7 Android 16 ARM64

إصدار Chromium

commit 994c846bbd7a35241ba7c08158c13d66412a6993 (HEAD -> 146.0.7680.111, tag: 146.0.7680.111)
Author: Roger McFarlane <[email protected]>
Date:   Mon Mar 9 12:48:07 2026 -0700

الوصف

نهج الاستغلال

يجمع هذا المستودع بين CVE-2026-11057 (ذاكرة صورة glyph غير مهيأة في Skia) وCVE-2026-5281 (استخدام بعد التحرير DeviceInfo في خادم Dawn wire) في سلسلة كاملة. جميع التعديلات على جانب المُصيّر (renderer)؛ كود عملية GPU دون تغيير:

  1. تسريب المعلومات (CVE-2026-11057) — إثارة مخزن مؤقت لصورة glyph غير مهيأ عبر عرض نص على canvas، وقراءة المؤشرات من كومة عملية GPU، والتحقق منها عبر عمليات حسابية متكررة، واستنتاج قاعدة تجمّع PartitionAlloc، وحساب هدف Server المزيف M = POOL + 0x202A08000 (إزاحة معايرة).

  2. رشّ CC — يُطلق createBuffer(label="CCM:<m>:<n>") حقن 3000 من ChunkedCommands غير المكتملة (دلو 10KB، remainingSize=1، تبقى حية في mChunkedCommands الخاص بخادم wire). تملأ الحمولة المنطقة حول M بـ Server مزيف مُهيأ لـ Android arm64: MutexProtected vptr عند +0xB20، وChunkedCommandSerializer عند +0xB50/+0xB58، وCommandSerializer/vtable مزيف عند +0xC00/+0xD00.

  3. إطلاق 5281 + الاحتلال — يستدعي queue.writeBuffer(buffer, 0x414141, ...) أولاً Unregister(Device) لتحرير DeviceInfo ذي الـ 16 بايت، ثم يحقن ChunkedCommand احتلالي بحجم 16 بايت لاستعادة تلك الفتحة والكتابة فوق info->server بالقيمة M، وأخيراً يثير خطأ تحقق بإزاحة خارج الحدود.

  4. استدعاء معلّق → اختطاف vtable — يقوم استدعاء الخطأ غير المُلتقط بإلغاء الإشارة إلى info->server = M (Server المزيف): تمرّ الأقفال المُصفّرة، ويصل التنفيذ إلى OnUncapturedError → SerializeCommand، ويصيب الاستدعاء غير المباشر عبر vtable النسبي جدول vtable المزيف الخاص بنا، مما يعطي pc = fake_vtable + controlled int32 offset، كما هو موضح بـ pc = 0x7641414141.

ملاحظة: يستخدم Chromium على Android arm64 جداول vtable نسبية (-fexperimental-relative-c++-abi-vtables)؛ مدخلات vtable هي إزاحات نسبية 32-بت بدلاً من مؤشرات دوال مطلقة، لذا يستخدم PoC إزاحة int32 مُتحكَّم بها كعلامة عند نقطة اختطاف vtable.

على جهاز الاختبار، تصل السلسلة الكاملة إلى انهيار اختطاف vtable بمعدل نجاح يقارب 100%؛ قد تتطلب مرحلة التسريب أحياناً عدة عمليات إعادة تحميل تلقائية قبل أن تنجح.

أدوار الملفات

  • SkStrike.cpp.patch — مُشغّل تسريب CVE-2026-11057. تعيد FlattenGlyphsByType() كتابة حمولة strike بحيث تنشئ عملية GPU SkGlyph بقيمة fImage == nullptr، مما يؤدي في النهاية إلى قراءة مخزن مؤقت لصورة غير مهيأ لتسريب مؤشرات الكومة.
  • Device.cpp.patch — رشّ CC في عميل Dawn wire. تحلّل APICreateBuffer() تسمية CCM:، وتبني حمولة Server المزيف لـ Android arm64، وتحقن N من ChunkedCommands غير المكتملة التي تبقى حية في عملية GPU.
  • ApiProcs.cpp.patch — إطلاق CVE-2026-5281 + الاحتلال. عند الإزاحة السحرية 0x414141 في QueueWriteBuffer، يستدعي Unregister(Device) لتحرير DeviceInfo، ويحقن ChunkedCommand بحجم 16 بايت لاستعادة الفتحة وتعيين info->server = M، ثم يمضي بإزاحة خارج الحدود لإطلاق الاستدعاء المعلّق.
  • exploit.html — تنسيق الصفحة: بدائية التسريب (groom/draw/readCell/verifyRuns/derivePoolBase)، ورشّ CC، ومُشغّل exploit5281() مستقل؛ عند الفشل ينظّف حالة الرشّ ويعيد التحميل حتى لا تتداخل المراحل.

نطاق الإفصاح

يُفصح عن هذا ExP فقط حتى خطوة اختطاف vtable (هدف استدعاء غير مباشر مُتحكَّم به، pc = base+0x41414141). تبقى الخطوات من القفزة المُتحكَّم بها فصاعداً، بالإضافة إلى تنفيذ RCE، سرية وغير مضمنة في هذا المستودع.

الاستغلال الواقعي مقابل PoC الأصلي

يختلف استغلالي عن نهج المُبلّغ الأصلي في نقطة جوهرية. تحقق الاستغلال الأصلي عبر تعديل الكود المصدري لـ PartitionAlloc في عملية GPU لتعطيل عشوائية العناوين. هذا النهج مناسب فقط لأغراض إثبات المفهوم. في المقابل، يجمع استغلالي بين ثغرة إفصاح عن المعلومات لتجاوز عشوائية العناوين، مما يتيح استغلالاً فعّالاً بالكامل يعمل في بيئات واقعية.

وسائط بناء args.gn

# Set build arguments here. See `gn help buildargs`.
is_official_build = true
is_debug = false
symbol_level = 0
v8_symbol_level = 0
blink_symbol_level = 0
is_component_build = false  
proprietary_codecs = true   
ffmpeg_branding = "Chrome"  
dcheck_always_on =false
optimize_webui = true
android_static_analysis = "off"
target_os = "android"
target_cpu = "arm64"

# Disable PartitionAllocEventuallyZeroFreedMemory
disable_fieldtrial_testing_config = true

treat_warnings_as_errors = false

إعادة الإنتاج

  1. cd third_party/dawn
  2. git apply ApiProcs.cpp.patch
  3. git apply Device.cpp.patch
  4. cd ../skia
  5. git apply SkStrike.cpp.patch
  6. بناء chromium
  7. افتح Chrome على جهاز Android ونفّذ exploit.html
  8. نفّذ adb logcat | grep DEBUG على الحاسوب

ملاحظة

  1. احذر من مأزق PartitionAllocEventuallyZeroFreedMemory. عند تفعيله، فإنه يقوم في النهاية بتصفير الذاكرة المحرَّرة. هذه الميزة معطّلة افتراضيًا. في إصدارات Stable الرسمية يتم التحكم بها عبر Finch من Google (تجربة ميدانية من جانب الخادم) وعادةً لا تقوم Google بتفعيلها لعامة المستخدمين. ومع ذلك، يتم تفعيلها بشكل متكرر في البناءات المحلية / غير الرسمية وقنوات Dev/Canary الرسمية (خاصةً عند تفعيل إعدادات اختبار التجارب الميدانية). هذا مأزق شائع عند تطوير أو اختبار الاستغلالات ضد بناءات غير Stable.
  2. الوصول إلى exploit.html عبر عنوان الاسترجاع 127.0.0.1. وإلا فسيتم التعامل مع HTTP على أنه غير موثوق ولن يعمل WebGPU
  3. في حالة الاستخدام هذه، يؤدي تخطيط الكومة (heap layout) لبدائية التسريب أداءً جيدًا بشكل خاص على Pixel 7، حيث يتطلب فقط 1–10 ثوانٍ. كما ينجح على Pixel 9، رغم أن العملية تستغرق 2–3 دقائق. وبينما يمكن تحسين تخطيط الكومة بشكل أكبر لتحقيق توافق أوسع عبر معظم أجهزة Pixel—وقد تم بالفعل تحديد هذه التحسينات—إلا أن هذه التحسينات تقع خارج نطاق هذه التجربة ولا تُناقش هنا.
تنزيل الأداة