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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
streambox-cve-2026-28618 — ملاحظات محجوبة حول CVE-2026-28618 / مختبر StreamBox APV — كتابة في الكومة إلى كائن جلسة عبر عدم تطابق ارتفاع FRAME | Kitploit
أدوات/GitHubGitHub/raafatabualazm/streambox-cve-2026-28618
أمان أندرويدتحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةأمن الجوالالأوراق والأبحاثالتعلم والتعليماستغلال الملفات الثنائية

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHubraafatabualazm/streambox-cve-2026-28618

streambox-cve-2026-28618

ملاحظات محجوبة حول CVE-2026-28618 / مختبر StreamBox APV — كتابة في الكومة إلى كائن جلسة عبر عدم تطابق ارتفاع FRAME

عرض المستودع
منذ 2س 55دلم تتم المراجعة بعد

APV بنقرة صفرية، في مشغل يشغّل المقاطع المشتركة تلقائيًا

CVE-2026-28618 في StreamBox — نفس فئة وحدة فك الترميز الخاصة بثغرة APV RCE على Android المستغلة فعليًا، وقد حُوّلت إلى كتابة على الكومة (heap write) ضد كائن جلسة (session object).

هذا المستودع هو تقرير عام منقّح: الأعلام (flags) ورموز النسخة (instance tokens) ومفتاح HMAC محذوفة. ملف APK وmake_clip.py ملك لـ Mobile Hacking Lab؛ وليست منسوخة هنا.

سلسلة الهجوم

ما الذي حللناه

StreamBox هو مشغل APV صغير. APV هو Advanced Professional Video (RFC 9924)، وهو الترميز الخالي من الرسوم لسامسونج، نفس العائلة التي شُحنت في حزمة الوسائط في Android. فكرة المختبر في جملة واحدة: المشغل يشغّل المقاطع المشتركة عند وصولها.

SEND أو VIEW أو streambox://?url=… تُوصل ملفًا إلى files/incoming.apv ويُشغَّل NativeDec.loadClip(). دون أي نقرة إضافية على المقطع.

الثغرة هي CVE-2026-28618: تجاوز سعة المخزن المؤقت في الكومة (heap buffer overflow) في dec_frm_prepare من OpenAPV. نفس الفئة، نفس وحدة فك الترميز مثل CVE-2026-0006، ثغرة APV RCE بنقرة صفرية التي استُغلت فعليًا في البرية في وقت سابق من هذا العام.

يغلّف المختبر تلك الكتابة كلعبة. أفرِط في مستوى Y المثبّت 64×64، حطّم كائن جلسة مجاور، أعد توجيه التدمير (teardown) إلى handlers[2]، وسيعيد الـ Worker العلم.

العدة عبارة عن ملفين مضغوطين من المختبر:

  • streambox-lab.apk.zip — المشغل
  • make_clip.py.zip — كيفية بناء مقاطع مكتبة 64×64، والـ bitstream الذي تفرط في سعته

المشغل

واجهة مشغل StreamBox الوهمية، مقطع مشترك يُشغَّل تلقائيًا، التشخيصات تكشف الـ arena والجلسة

PlayerActivity يقوم بـ:

root@kitploit:~
NativeDec.setVideoTitle(name);
status = NativeDec.loadClip(path);
// WebView bridge later calls Android.openTier(status)

openTier(1) هو إصابة جزئية (تم لمس الجلسة، عدم تطابق الرمز). openTier(2) هو win(). يقوم PremiumActivity بإرسال الحالة الأصلية إلى المختبر:

root@kitploit:~
POST /api/unlock
{
  "instance_id": <from POST /api/instance>,
  "tier": 3,
  "session_hex": hex(sessionProof[64]),
  "ticket": HMAC-SHA256(ticketKey, instance_id + ":" + session_hex)
}

عند الإقلاع كان التطبيق قد نفّذ بالفعل POST /api/instance وNativeDec.setPlatinumToken(token). ذلك الرمز هو ما يجب أن يكتبه الفائض في الجلسة.

الكومة: 64×64 Y، ثم الجلسة

مستوى Y بحجم 0x2000 بايت، كائن الجلسة مباشرة بعده، صفوف FRAME الإضافية تفيض إلى magic/token/handler

root@kitploit:~
arena   = calloc(1, 0x206040);
session = arena + pad + 0x2000;
*(uint64_t *)session = 0x53545245414D424F;  /* bytes: "OBMAERTS" */

الـ oapv_imgb_t مثبّت عند 64×64، YUV بعمق 10 بت. يبدأ المستوى 0 (Y) عند arena+0. 64 × 64 × 2 = 0x2000. مع pad == 0، تجلس الجلسة على أول بايت بعد Y.

يكتب oapvd_decode() بعرض/ارتفاع FRAME PBU. إطار FRAME أطول من 64 يكتب عينات 10 بت مباشرة في session.

بعد فك الترميز:

root@kitploit:~
if (session->token == g_token) {        /* +0x08 */
    if (session->handler <= 2)          /* +0x0c */
        g_handlers[session->handler](); /* [2] == win() */
} else if (session->token != 0) {
    g_premium = 1;
}
memcpy(g_session_proof, session, 64);
return g_platinum ? 2 : g_premium ? 1 : 0;

تخطيط sessionProof: تحطيم magic، مطابقة token، فهرس handler يساوي 2

make_clip.py هو مسار المقطع

يرسم مولّد المختبر 32 إطارًا من RGB بحجم 64×64، ويحوّلها إلى yuv422p10le، ويستدعي مُرمّز OpenAPV المرجعي:

root@kitploit:~
oapv_app_enc -i anim.yuv -w 64 -h 64 -z 8 --input-csp 2 -d 10 -o out.apv -v 1

كل مقطع مضمّن هو 32 وحدة وصول (access units) من FRAME 64×64:

root@kitploit:~
[u32be au_size] ['aPv1' + PBUs] × 32

ترويسة FRAME: تعديل u24be للارتفاع عند الملف +0x16 من 64 إلى 72

لا يزال المشغل يخصص 64×64. عدّل frame_height لكل AU من 64 → 72:

root@kitploit:~
python3 scripts/patch_frame_height.py clip_pulse.apv -o overflow_height72.apv --height 72

شاركه (SEND / VIEW / streambox://?url=). التشغيل التلقائي هو الاستغلال.

الفائض الأنظف هو تعديل H في make_clip.py إلى 72 أو 128 وإعادة الترميز بحيث تكون صفوف Y الإضافية بيانات صورة حقيقية. الصف 64 من مستوى بعرض 64 وعمق 10 بت هو 128 بايت:

  • البكسلات 0–3 → session magic (يجب أن يتوقف عن كونه OBMAERTS)
  • البكسلات 4–5 → instance token (g_token)
  • البكسلات 6–7 → فهرس handler وهو 2

APV ضياعي (lossy)؛ القيم الدقيقة بعمق 10 بت عبر oapv_app_enc تتطلب QP 0 / شبه بلا ضياع.

PoC عام ذو صلة لفئة الثغرة الأم: mobilehackinglab/CVE-2026-0006-openapv-poc.

إثبات الكتابة

urllib في Python يحصل على Cloudflare 1010. أما curl مع UA خاص بالهاتف فيعمل.

يرفض الـ Worker الـ magic الأصلي بـ no overflow evidence: session magic intact. يُحتسب ASCII STREAMBO (بايتات مختلفة عن uint64 بصيغة LE) ككتابة.

فتح منقّح: POST /api/instance ثم POST /api/unlock يعيد MHL{REDACTED}

root@kitploit:~
# fill TICKET_KEY in scripts/unlock.py from NativeDec.ticketKey()
python3 scripts/unlock.py

win() هو ما يعرضه المشغل عندما يعيد loadClip القيمة 2:

شاشة SESSION COMPROMISED مع حجب العلم

روابط

  • هذا المستودع: سكربتات مساعدة + مخططات
  • نشرة أمان Android — سبتمبر 2026 (CVE-2026-28618، A-492492028، Media Codecs)
  • تقرير CVE-2026-0006 — Mobile Hacking Lab
  • CVE-2026-0006 PoC
  • OpenAPV (Academy Software Foundation)
  • ترقيع AOSP — التحقق من الأبعاد في dec_frm_prepare

إخلاء المسؤولية

ملاحظات مختبر مصرّح بها لتمرين StreamBox من Mobile Hacking Lab. لا APK، لا رموز حية، لا علم. لا تشغّل هذه الأوليات (primitives) ضد أي شيء لا تملكه أو لا تملك إذنًا باختباره.

تنزيل الأداة