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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-21045_and_CVE-2026-21048 — Генерирует специально созданные TIFF/DNG-файлы для инициирования записи за пределами границ буфера в libimagecodec.quram.so от Samsung, включая анализ бинарного файла и шаги воспроизведения. | Kitploit
Инструменты/GitHubGitHub/pealeap/cve-2026-21045_and_cve-2026-21048
Безопасность AndroidАнализ уязвимостейЭксплуатацияОбратная инженерияМобильная безопасностьАнализ Бинарных ФайловОбучение и ОбразованиеЭксплуатация Бинарных Файлов

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
GitHub
pealeap/cve-2026-21045_and_cve-2026-21048

CVE-2026-21045_and_CVE-2026-21048

Генерирует специально созданные TIFF/DNG-файлы для инициирования записи за пределами границ буфера в libimagecodec.quram.so от Samsung, включая анализ бинарного файла и шаги воспроизведения.

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

CVE-2026-21045 и CVE-2026-21048 — Samsung libimagecodec.quram.so — PoC OOB-записи

Обзор

Этот репозиторий содержит концептуальные файлы Proof-of-Concept (PoC), демонстрирующие уязвимости записи за пределами границ (out-of-bounds, 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 (Image File Directory) WINKJ_ReadExifField (смещение 0x13a0a8 в 64-разрядном бинарном файле). Эта функция обрабатывает отдельные записи 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, 4-байтовое поле Value рассматривается как смещение в файле (указывающее на фактические данные). Затем код выполняет проверку границ по адресу 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-битное переполнение беззнакового целого при сложении. Если злоумышленник подберёт value_offset и count * element_size так, чтобы их сумма заворачивалась до малого значения, проверка проходит, даже если фактическое обращение к памяти по адресу base + value_offset выходит за границы.

Пример (тип UNDEFINED, element_size = 1):

32-битное сложение 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 Gallery (или в любом приложении, использующем декодер Quram) должно вызвать повреждение кучи (heap corruption), что потенциально может привести к:

  • Падению приложения (SIGSEGV/SIGABRT)
  • Записи за пределами границ в куче
  • При определённых раскладках кучи: потенциальному произвольному выполнению кода

На пропатченном устройстве (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

Ключевые функции

Таблица диспетчеризации (тип тега → обработчик)

Все типы с element_size = 1 (BYTE, ASCII, UNDEFINED) используют один и тот же обработчик и одинаково уязвимы к обходу через переполнение целого числа.

Связанные CVE

Отказ от ответственности

Эти концептуальные доказательства (proofs of concept) предоставлены исключительно в образовательных целях и для исследований в области безопасности. Они демонстрируют механизм уязвимости, помогая пользователям и разработчикам понять риск. Не используйте их против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения.

Ссылки

  • 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 байт за пределами буфера❌ OOB
ФункцияАдрес (64-бит)РазмерНазначение
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-битного умножения
_TIFFMultiply640x1a2f5848Безопасная проверка 64-битного умножения
ТипИмяРазмер элементаАдрес обработчика
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