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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-21045_and_CVE-2026-21048 — سامسونج: إثبات مفهوم (PoC) لكتابة خارج النطاق في libimagecodec.quram.so | Kitploit
أدوات/GitHubGitHub/filipemendonca1978/cve-2026-21045_and_cve-2026-21048
أمان أندرويدتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةالاختبار العشوائيأمن الجوالالأوراق والأبحاثالتعلم والتعليماستغلال الملفات الثنائية

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHubfilipemendonca1978/cve-2026-21045_and_cve-2026-21048

CVE-2026-21045_and_CVE-2026-21048

سامسونج: إثبات مفهوم (PoC) لكتابة خارج النطاق في libimagecodec.quram.so

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

CVE-2026-21045 & CVE-2026-21048 — إثبات المفهوم (PoC) لثغرة الكتابة خارج الحدود في Samsung libimagecodec.quram.so

نظرة عامة

يحتوي هذا المستودع على ملفات إثبات المفهوم (PoC) المفاهيمية التي توضح ثغرات الكتابة خارج الحدود (OOB) في مكتبة ترميز الصور Quramsoft (libimagecodec.quram.so) المستخدمة على أجهزة Samsung التي تعمل بنظام Android.

CVEالصيغةالنوعالخطورةCVSS 4.0تم التصحيح في
CVE-2026-21045TIFFكتابة خارج الحدود (CWE-787)حرجة8.4SMR Jul-2026 Release 1
CVE-2026-21048DNGكتابة خارج الحدود (CWE-787)عالية—SMR Jul-2026 Release 1

الأجهزة المتأثرة

  • أجهزة Samsung Galaxy التي تعمل بنظام Android 14 و15 و16
  • تحديدًا: Galaxy Z Fold 7 وFlip 7 وسلسلة S وسلسلة A (مثل A17)
  • الأجهزة التي تحتوي على تصحيح أمني أقدم من SMR Jul-2026 Release 1
  • المكتبة: /system/lib64/libimagecodec.quram.so

آلية الثغرة

السبب الجذري

تقع الثغرة في دالة تحليل وسوم IFD (دليل ملف الصورة) المسماة WINKJ_ReadExifField (الإزاحة 0x13a0a8 في الملف الثنائي 64-bit). تعالج هذه الدالة إدخالات IFD الفردية في ملفات TIFF/EXIF، وكل إدخال عبارة عن بنية من 12 بايت:

root@kitploit:~
Offset  Size  Field
------  ----  -----
0       2     Tag ID
2       2     Data Type (1=BYTE, 2=ASCII, 3=SHORT, 4=LONG, 5=RATIONAL, etc.)
4       4     Count (number of values)
8       4     Value / Offset to data

عندما يكون count * element_size > 4، يتم التعامل مع حقل Value ذي الـ 4 بايت كـ إزاحة ملف (تشير إلى مكان البيانات الفعلية). يقوم الكود بعد ذلك بإجراء فحص حدود عند العنوان 0x13a258:

root@kitploit:~
add w8, w6, w7    ; w8 = value_offset + (count * element_size)  [32-bit]
cmp w8, w5        ; compare against remaining buffer size
b.ls ok           ; if w8 <= buffer_size, proceed

تجاوز الفحص عبر فيض الأعداد الصحيحة

تتمثل الثغرة في فيض عدد صحيح غير مُوقَّع 32-bit في عملية الجمع. إذا صاغ المهاجم value_offset وcount * element_size بحيث يلتف مجموعهما إلى قيمة صغيرة، فإن الفحص ينجح على الرغم من أن الوصول الفعلي للذاكرة عند base + value_offset يقع خارج الحدود.

مثال (نوع UNDEFINED، element_size = 1):

عملية الجمع 32-bit 0x17FFF + 0xFFFF0001 = 0x10008000 تُقتطع إلى 0x8000، وهو ما يساوي buffer_size. ينجح الفحص، لكن مؤشر البيانات الفعلي (base + 0x17FFF) يقع على بُعد 0x7FFF بايت بعد نهاية المخزن المؤقت المُخصص.

مسار الكود القابل للاستغلال

root@kitploit:~
TIFFReadDirectory / WINKJ_ReadTiffInfo
  └─> WINKJ_ReadTiffIFDInfo   (allocates IFD buffer)
       └─> for each IFD entry:
            └─> WINKJ_ReadExifField   (parses entry, reads value data)
                 └─> Switch on Data Type (jump table at 0x13a15c)
                      ├─ Type 0 (BYTE/ASCII/UNDEFINED):  handler at 0x13a15c
                      ├─ Type 3/8 (SHORT/SSHORT):       handler at 0x13a1d0
                      ├─ Type 4/9/11 (LONG/SLONG/FLOAT): handler at 0x13a17c
                      └─ Type 5/10/12 (RATIONAL/SRATIONAL/DOUBLE): handler at 0x13a1ac
                      Each handler -> reads data at offset -> bounds check at 0x13a258

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

الملفالوصف
cve-2026-21045_tiff_oob_poc.pyينشئ poc_crash.tif — ملف TIFF تالف يُطلق كتابة خارج الحدود عبر وسم ASCII مع count/offset مُصطنَع
cve-2026-21048_dng_oob_poc.pyينشئ poc_crash.dng — ملف DNG تالف يُطلق كتابة خارج الحدود عبر وسم UNDEFINED مع count/offset مُصطنَع

الاستخدام

root@kitploit:~
# Generate TIFF PoC
python3 cve-2026-21045_tiff_oob_poc.py -o payload.tif

# Generate DNG PoC
python3 cve-2026-21048_dng_oob_poc.py -o payload.dng

# Transfer to device and trigger (e.g., via Gallery/MMS)
adb push payload.tif /sdcard/Download/
adb shell am start -a android.intent.action.VIEW -d file:///sdcard/Download/payload.tif -t image/tiff

السلوك المتوقع

على جهاز غير مُصحَّح (تصحيح أمني أقدم من يوليو 2026)، من المتوقع أن يتسبب فتح ملف TIFF/DNG المُصطنَع في معرض Samsung (أو أي تطبيق يستخدم وحدة فك ترميز Quram) في إفساد ذاكرة الكومة (heap)، مما قد يؤدي إلى:

  • انهيار التطبيق (SIGSEGV/SIGABRT)
  • كتابة خارج الحدود في الكومة (heap)
  • في تخطيطات كومة محددة: احتمالية تنفيذ كود تعسفي (arbitrary code execution)

على جهاز مُصحَّح (SMR Jul-2026 أو أحدث)، يجب إما رفض الصورة باعتبارها غير صالحة أو معالجتها بأمان. قد يشير الانهيار على جهاز مُصحَّح بالكامل إلى مشكلة منفصلة غير مُصحَّحة.

تفاصيل تحليل الملف الثنائي

معلومات المكتبة

root@kitploit:~
File:   libimagecodec.quram.so (64-bit)
SHA256: (verify against your copy)
NDK:    r23c (Android 21)
Built:  2021-12-31 (placeholder date)
Soname: libimagecodec.quram.so

الدوال الرئيسية

جدول التوزيع (نوع الوسم → المعالج)

مُستخرج من WINKJ_ReadExifField:

جميع الأنواع ذات element_size = 1 (BYTE، ASCII، UNDEFINED) تشترك في نفس المعالج وتكون عرضة بنفس القدر لتجاوز الفحص عبر فيض الأعداد الصحيحة.

ثغرات CVE ذات الصلة

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

تُقدَّم إثباتات المفهوم هذه لأغراض تعليمية وبحوث أمنية فقط. وهي توضح آلية الثغرة لمساعدة المستخدمين والمطورين على فهم المخاطر. لا تستخدمها ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها.

المراجع

  • https://nvd.nist.gov/vuln/detail/CVE-2026-21045
  • https://nvd.nist.gov/vuln/detail/CVE-2026-21048
  • https://security.samsungmobile.com/securityUpdate.smsb
  • https://gitlab.com/libtiff/libtiff/-/releases/v4.6.0
تنزيل الأداة
الحقلالقيمة (hex)العشري
count0xFFFF00014,294,901,761
element_size11
count * element_size0xFFFF0001 ≡ -65535 (mod 2³²)4,294,901,761
value_offset0x00017FFF98,303
value_offset + count*size0x00008000 (فيض!)32,768
buffer_size0x0000800032,768
نتيجة الفحص: 0x8000 <= 0x8000✅ نجاح—
الوصول الفعلي للذاكرة: base + 0x17FFF0x7FFF بايت بعد نهاية المخزن المؤقت❌ خارج الحدود
الدالةالعنوان (64-bit)الحجمالغرض
WINKJ_ReadExifField0x13a0a8912يحلل إدخال IFD الفردي (يحتوي على الثغرة)
WINKJ_ReadTiffIFDInfo0x139d28896يقرأ جميع إدخالات IFD
WINKJ_ReadTiffInfo0x139ad4596محلل معلومات TIFF عالي المستوى
WINKJ_GetTiffInfo0x1393fc1752نقطة الدخول الرئيسية لتحليل TIFF
decodeTIFF0x1a2adc580يفك ترميز صورة TIFF عبر libtiff
getTIFFImageInfo0x1a2d20508يحصل على بيانات تعريف صورة TIFF
copySubImageBuffer0x0b2824324ينسخ منطقة الصورة الفرعية
TIFFReadDirectory0x1aac785896قارئ الدليل في libtiff 4.6.0
_TIFFMultiply320x1a2f1c56فحص ضرب 32-bit آمن
_TIFFMultiply640x1a2f5848فحص ضرب 64-bit آمن
النوعالاسمحجم العنصرعنوان المعالج
1BYTE10x13a15c
2ASCII10x13a15c
3SHORT20x13a1d0
4LONG40x13a17c
5RATIONAL80x13a1ac
6SBYTE10x13a15c
7UNDEFINED10x13a15c
8SSHORT20x13a1d0
9SLONG40x13a17c
10SRATIONAL80x13a1ac
11FLOAT40x13a17c
12DOUBLE80x13a1ac
CVEالوصفالحالة
CVE-2025-58477كتابة خارج الحدود في تحليل وسوم IFD في libimagecodec.quram.so (SMR Dec-2025)✅ مُصحَّحة
CVE-2026-20973قراءة خارج الحدود في libimagecodec.quram.so (SMR Jan-2026)✅ مُصحَّحة
CVE-2026-21045كتابة خارج الحدود في تحليل TIFF في libimagecodec.media.quram.so (SMR Jul-2026)⚠️ غير مُصحَّحة لديّ
CVE-2026-21048كتابة خارج الحدود في تحليل DNG في libimagecodec.media.quram.so (SMR Jul-2026)⚠️ غير مُصحَّحة لديّ
CVE-2026-4775فيض عدد صحيح مُوقَّع في libtiff 4.6.0 putcontig8bitYCbCr44tile⚠️ غير مُصحَّحة لديّ
CVE-2024-7006إلغاء مرجعية NULL في libtiff tif_dirinfo.c✅ تم إصلاحها في 4.6.1