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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-20687-AppleJPEGDriver-UAF — CVE-2026-20687: AppleJPEGDriver startDecoder Timeout UAF — уязвимость ядра iOS/macOS, приводящая к отложенной панике (A19 Pro, iOS 26.3 RC) | Kitploit
Инструменты/GitHubGitHub/0xjohnnydev/cve-2026-20687-applejpegdriver-uaf
Безопасность iOSАнализ уязвимостейЭксплуатацияМобильная безопасностьЭксплуатация Бинарных Файлов
GitHub0xjohnnydev/cve-2026-20687-applejpegdriver-uaf

CVE-2026-20687-AppleJPEGDriver-UAF

CVE-2026-20687: AppleJPEGDriver startDecoder Timeout UAF — уязвимость ядра iOS/macOS, приводящая к отложенной панике (A19 Pro, iOS 26.3 RC)

Репозиторий

Популярное

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

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

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

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

Смотреть все инструменты →
Сайт
1934 месяцев назадЕщё не проверено
Поделиться

CVE-2026-20687: AppleJPEGDriver startDecoder() Таймаут UAF (отложенная паника)

CVE-2026-20687 | Автор: Johnny Franks (@zeroxjf)

Компонент: Kernel

Воздействие: Приложение может вызвать неожиданное завершение работы системы или запись в память ядра

Описание: Проблема использования после освобождения была устранена с помощью улучшенного управления памятью.

— Apple Security Content, iOS 26.4 и iPadOS 26.4

Это вызовет панику ядра на вашем устройстве. Сохраните свою работу.

Протестировано на iOS 26.3 (23D125) на iPhone18,2 (iPhone 17 Pro Max, A19 Pro).

Триггер

Прямой триггер:

  1. Запустите PoC и нажмите Panic (инициализирует драйвер / ставит в очередь асинхронную работу).
  2. Затем откройте Camera (это надёжно вызывает синхронное декодирование JPEG + таймаут на затронутой сборке).
  3. Путь таймаута освобождает запрос, но оставляет указатель на встроенный узел очереди в векторе конкретного кодека.
  4. Более поздний обход очереди разыменовывает устаревший узел, и ядро паникует (ошибка проверки тега MTE).
root@kitploit:~
// PoC: инициализирует драйвер; паника обычно откладывается до открытия Camera.
IOServiceOpen("AppleJPEGDriver");
for (int i = 0; i < N; i++) {
  startDecoder_async();                   // queue_io_gated(): vector.push(req + 0x78)
}
IOServiceClose(conn);

// Позже открытие Camera вызывает:
startDecoder_sync();
  queue_io_gated(): vector.push(req + 0x78);
  wait(10s) -> TIMEOUT;
  pool_free(req);                         // ОШИБКА: не удаляет из очереди (req + 0x78)

// Ещё позже (finish_io_gated):
fullSpeedRequestExist():
  node_ptr = vector[i];                   // устаревший: node_ptr == (освобождённый req + 0x78)
  req2 = *(node_ptr + 0x8);              // UAF чтение req+0x80 -> ошибка тега MTE -> паника

Сборка и запуск

  1. Откройте ios-app/Test.xcodeproj в Xcode
  2. Выберите ваше iOS-устройство (симулятор не подойдёт)
  3. Соберите и запустите
  4. Нажмите кнопку Panic
  5. Откройте приложение Camera, чтобы вызвать отложенную панику
Скачать инструмент