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

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

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

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

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

Категории

Все категории
Loading categories
agxprobe — CVE-2026-64747 AGXG14P count-bitmask OOB триггерный зонд (A15/iOS 26.5.2) | Kitploit
Инструменты/GitHubGitHub/jiuyi155/agxprobe
Безопасность iOSАнализ уязвимостейЭксплуатацияОбратная инженерияФаззингМобильная безопасностьЭксплуатация Бинарных Файлов
GitHubjiuyi155/agxprobe

agxprobe

CVE-2026-64747 AGXG14P count-bitmask OOB триггерный зонд (A15/iOS 26.5.2)

Репозиторий
19 дней назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

AGXProbe — триггерный зонд для CVE-2026-64747

Цель: iPhone 13 (A15) на iOS 26.5.2. Это приложение «долбит» пути командной очереди GPU AGXG14P, которые, предположительно, питают битовую маску счётчика на очередь (count >= 0x400 → внеграничная запись 0x40-байтного слота → повреждение кучи ядра).

Что мы знаем (реверс, 2026-08-10)

  • Уязвимая функция 0xfffffff008003a8c (26.5.2): x1 = 32-битная маска счётчика. Для каждого установленного бита n она копирует фиксированный шаблон размером 0x40 байт (00 00 00 00 + FF×60) в obj+0x1040+n*0x40 и obj+0x1540+n*0x40. Исправление в 26.6: отклонять count >= 0x400 (т.е. любой бит ≥ 10). Легальные слоты 0..9.
  • Маска OR-накапливается по всей отправленной партии из поля [cmd+0x14] каждой команды (обёртка 0xfffffff00800c9d0). Массивы слотов партии (10 слотов × 0x40) находятся по смещениям объекта 0x1040 / 0x1540.
  • count недостижим ни через один статический вызов/литерал — функция достигается через диспетчерскую таблицу, построенную во время выполнения (косвенный PAC-вызов).
  • Неизвестно: какой пользовательский рычаг питает [cmd+0x14] (или маску). Именно это данный зонд и пытается выяснить эмпирически.

Гипотеза срабатывания

Отправленная партия, в которой поле 0x14 какой-либо команды (или OR по всей партии) устанавливает бит ≥ 10. Поэтому данный зонд заваливает все правдоподобные поверхности значениями со старшими битами: значения сигналов shared-event 1<<k (k=0..31), плотные маски (0x3FF|0x400..0xFFFFFFFF), одиночные партии из 256 буферов, fence'ы, render + compute + blit, 32 очереди.

Если зонд вызывает баг, ожидаемые симптомы по возрастанию серьёзности:

  1. Приложение убивается системой во время выполнения (эффект на стороне пользовательского пространства от повреждённой очереди).
  2. Устройство полностью перезагружается (паника ядра из-за внеграничной записи в кучу, попавшей в живой объект). ← самый сильный сигнал.
  3. Ничего не происходит (счётчик не контролируется через эти API → нужна другая поверхность срабатывания; пришлите лог).

Установка — готовый ipa (собран в CI, без подписи)

Готовый ipa автоматически собирается GitHub Actions при каждом пуше и попадает в build artifacts последнего запуска (AGXProbe.ipa). Он без подписи, так что устанавливайте его любым сайдлоадером с бесплатным Apple ID:

  • Windows: Sideloadly (или AltStore). Добавьте ipa, ваш Apple ID, нажмите Start. Приложение устанавливается на 7 дней.
  • macOS: Sideloadly или Xcode (см. сборку ниже).

Текущий ipa: bundle id com.agxprobe.test, arm64, MinOS 17.0. Если сайдлоадер отклоняет bundle id, переподпишите с уникальным id.

Сборка из исходников (нужен Mac — любой Mac, бесплатного Apple ID достаточно)

  1. Откройте AGXProbe.xcodeproj в Xcode (16.x).
  2. В проекте → таргет AGXProbe → Signing & Capabilities:
    • отметьте Automatically manage signing,
    • выберите вашу Team (ваш бесплатный Apple ID / personal team),
    • измените PRODUCT_BUNDLE_IDENTIFIER (например, com.you.agxprobe1) на что-нибудь уникальное, чтобы подпись прошла.
  3. Подключите iPhone 13 (iOS 26.5.2), выберите его как место запуска (Device, а не симулятор).
  4. Cmd-R. Если появляется ошибка "preferred signer" / provisioning, нажмите Enable Development на устройстве по запросу, затем повторите.

Запуск

  1. Запустите приложение. Оно выводит имя GPU-устройства на экран — убедитесь, что показывает A15 GPU (например, "Apple A15 GPU"), а не симулятор.
  2. Нажмите START. Смотрите зелёный лог в консоли.
  3. Фазы автоматически циклируются каждые 200 итераций: eventStorm → inFlight → fenceStorm → multiQueue → computeHeavy → chainedEvents → mixed → (repeat).
  4. Дайте ему поработать несколько минут. Не давайте устройству заснуть (отключите автоблокировку: Settings → Display & Brightness → Auto-Lock → Never).

Читаем результат

  • Устройство само перезагружается → зонд зацепил OOB. Теперь заберите лог паники (ниже) — это и подтверждает триггер, и даёт место краха для прицельного фэн-шуя по куче.
  • Приложение убито системой (мигает домашний экран, "AGXProbe quit") → вероятно, частичное попадание; тоже соберите лог.
  • Всё ещё работает через 5+ минут → счётчик, скорее всего, недостижим через эти конкретные API. Сохраните лог на устройстве (agxprobe.log в Documents приложения, доступен через приложение Файлы, так как UIFileSharingEnabled включён) и отправьте его.

Получение лога паники

Если была паника: Settings → Privacy & Security → Analytics & Improvements → Analytics Data → найдите самый свежий panic-full-<date> (или JetsamEvent / ipa-log-<timestamp> для убитого приложения) → Share / AirDrop / скопируйте хвост.

Первые строки после "panic(cpu ...)" показывают функцию ядра, в которой произошёл крах — отправьте их.

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