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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-21045_and_CVE-2026-21048 — Samsung libimagecodec.quram.so OOB Write PoC | Kitploit
Инструменты/GitHubGitHub/filipemendonca1978/cve-2026-21045_and_cve-2026-21048
Android SecurityVulnerability AnalysisExploitationReverse EngineeringFuzzingMobile SecurityPapers & ResearchLearning & EducationBinary Exploitation

Популярное

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

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

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

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

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

CVE-2026-21045_and_CVE-2026-21048

Samsung libimagecodec.quram.so OOB Write PoC

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

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 (Image File Directory) WINKJ_ReadExifField (смещение 0x13a0a8 в 64-битном бинарном файле). Эта функция обрабатывает отдельные записи IFD TIFF/EXIF, каждая из которых представляет собой 12-байтовую структуру:

root@kitploit:~
Смещение  Размер  Поле
------  ----  -----
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:~
# Генерация PoC для TIFF
python3 cve-2026-21045_tiff_oob_poc.py -o payload.tif

# Генерация PoC для DNG
python3 cve-2026-21048_dng_oob_poc.py -o payload.dng

# Передача на устройство и запуск (например, через Галерею/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) должно вызвать повреждение кучи, что потенциально может привести к:

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

На исправленном устройстве (SMR Jul-2026+) изображение должно либо быть отклонено как недействительное, либо обработано безопасно. Сбой на полностью исправленном устройстве может указывать на отдельную неисправленную проблему.

Детали анализа бинарного файла

Информация о библиотеке

root@kitploit:~
Файл:   libimagecodec.quram.so (64‑битный)
SHA256: (проверьте по своей копии)
NDK:    r23c (Android 21)
Собран: 2021-12-31 (заглушка)
Soname: libimagecodec.quram.so

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

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

Извлечено из WINKJ_ReadExifField:

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

Связанные CVE

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

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

Ссылки

  • 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 + 0x17FFFна 0x7FFF байт за границей❌ 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