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/enfilade-labs/cve-2026-20687-applejpegdriver-uaf
Безопасность iOSКриминалистика памятиАнализ уязвимостейЭксплуатацияОбратная инженерияМобильная безопасностьЭксплуатация Бинарных Файлов
GitHubenfilade-labs/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)

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

CVE-2026-20687 — AppleJPEGDriver startDecoder Timeout UAF

CVE-2026-20687 · Enfilade · enfilade.io

Компонент: Ядро

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

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

— Apple Security Content, iOS 26.4 и iPadOS 26.4

Цель

iOS26.3 (23D125) (протестировано)
macOS—
КомпонентAppleJPEGDriver
ИсправленоiOS 26.4 / iPadOS 26.4
ОборудованиеiPhone18,2 (iPhone 17 Pro Max, A19 Pro)

Предупреждение

Запуск PoC вызовет kernel panic на устройстве. Сохраните свою работу перед запуском. Повторные паники могут привести к повреждению файловой системы. Только для исследовательских целей в области безопасности.

Уязвимость

Путь тайм-аута в startDecoder_sync освобождает запрос, но оставляет указатель на встроенный узел очереди в векторе, привязанном к кодеку. Последующий обход очереди разыменовывает устаревший узел, и ядро паникует при проверке тегов MTE. Паника обычно откладывается до последующего синхронного декодирования JPEG — на iPhone это надёжно происходит при открытии приложения «Камера».

Доказательство концепции

root@kitploit:~
// Инициализирует драйвер; паника обычно откладывается до открытия «Камеры».
IOServiceOpen("AppleJPEGDriver");
for (int i = 0; i < N; i++) {
    startDecoder_async();                   // queue_io_gated: vector.push(req + 0x78)
}
IOServiceClose(conn);

// Позже открытие «Камеры» запускает:
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 == (freed req + 0x78)
    req2 = *(node_ptr + 0x8);               // чтение UAF -> сбой тега MTE -> паника

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

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

Лицензия

См. LICENSE.

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