
Применимость CVE-2026-25262 к Snapdragon 8 Gen 1 — экспериментальные результаты
Статус: Частичный успех — произвольная запись в SRAM подтверждена, полная инициализация Firehose ожидается.
В этом репозитории содержатся результаты экспериментального исследования применимости CVE-2026-25262 (Write-What-Where в протоколе Sahara Qualcomm) к платформе Snapdragon 8 Gen 1 (SM8450), в частности к устройству POCO F4 GT (кодовое имя ingres).
Ключевые результаты (подтверждены):
· CVE-2026-25262 эксплуатабельна на SM8450. Произвольная запись данных в SRAM на этапе рукопожатия Sahara возможна в обход проверки подписи. Это подтверждает применимость уязвимости к современной 64-битной платформе ARMv9, выходящей за пределы официально признанного списка устаревших 32- и 64-битных чипсетов (ARMv7-A, ARMv8-A).
· Критический флаг авторизации идентифицирован. Статический анализ загрузчика Firehose (xbl_s_devprg_ns.melf) выявил глобальную структуру по адресу 0x6b9cd500. Состояние авторизации управляется 64-битным полем по смещению 0x38 (0x6b9cd538). На основе статического анализа, установка этого поля в значение 5 теоретически должна предоставить полный доступ.
· Инъекция флага технически возможна. С помощью собственного инструмента (cve_final_single) выполнена запись значения 5 по адресу 0x6b9cd538 до передачи управления загрузчику. Факт записи зафиксирован в логе, однако прямое влияние этой операции на отключение авторизации остаётся предметом дальнейшей верификации.
· Код загрузчика исполняется. После инъекции загрузчик Firehose отвечает на базовые команды (nop), и ошибка авторизации (Only nop and sig tag...) не наблюдается. Это подтверждает, что код активен, однако точный контекст его исполнения (Non‑Secure World или переходное состояние) остаётся предметом дальнейшего анализа.
· Полный доступ к UFS пока не получен. Команды типа getstorageinfo возвращают пустой ответ; загрузчик не предоставляет диагностическую информацию (TargetName, MemoryName, Version). Это указывает на неполную инициализацию.
· Поведение PBL при ошибке хэша (при штатной загрузке с проверкой подписи) установлено. Намеренное повреждение хэш-таблицы в эталонном файле стабильно вызывает ошибку со статусом 48 (SAHARA_NAK_HASH_VERIFICATION_FAILURE) на оригинальных инструментах (edl, qdl). Это является нашим эталоном для верификации.
Текущий статус: Мы активно исследуем оставшиеся шаги для полной инициализации Firehose. Проверяются две основные гипотезы:
· Загрузка «чистого образа» – загрузка только LOAD-сегментов (без заголовков ELF и оверлея сертификатов) может обеспечить корректную инициализацию.
· Зависимости от TrustZone – Firehose может полагаться на Secure World (SMC-вызовы), который может быть не активен при CVE-доставке.
Параллельно будет исследована гипотеза о зависимости Firehose от TrustZone: если драйвер использует SMC-вызовы для доступа к UFS, потребуется их нейтрализация через патч.
Работа продолжается. Репозиторий будет пополняться по мере получения новых результатов.
Структура репозитория:
├── README.md
├── docs/
│ └── README_ru.md
├── article/
│ ├── article_en.md
│ └── article_ru.md
├── evidence/
│ ├── pbl_status_en.md
│ └── pbl_status_ru.md
│ ├── ghidra_analysis_en.md
│ └── ghidra_analysis_ru.md
│ └── cve_injection_log_en.md
│ └── cve_injection_log_ru.md
└── tools/
├── README_en.md
└── README_ru.md
⚠️Ответственное раскрытие: Эта работа публикуется в образовательных и исследовательских целях. Полный код эксплойта не предоставляется. Описанных деталей достаточно для верификации и дальнейшего изучения, но они не содержат готовых инструментов для атак.
📬 Контакты: По вопросам или для сотрудничества, пожалуйста, создайте issue в этом репозитории.
Последнее обновление: Июль 2026