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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-4275 — Анализ и эксплуатация CVE-2025-4275 (Hydr0ph0bia) — уязвимости цепочки доверия Secure Boot, при которой переменные прошивки используются для внедрения контролируемых злоумышленником сертификатов, которым доверяют последующие компоненты загрузки. | Kitploit
Инструменты/GitHubGitHub/themalwareguardian/cve-2025-4275
Механизмы персистентностиАнализ уязвимостейЭксплуатацияОбратная инженерияАппаратная БезопасностьАнализ Бинарных ФайловОбучение и ОбразованиеАнализ Прошивок

Популярное

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

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

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

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

Смотреть все инструменты →
GitHub
themalwareguardian/cve-2025-4275

CVE-2025-4275

Анализ и эксплуатация CVE-2025-4275 (Hydr0ph0bia) — уязвимости цепочки доверия Secure Boot, при которой переменные прошивки используются для внедрения контролируемых злоумышленником сертификатов, которым доверяют последующие компоненты загрузки.

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

🐞 CVE-2025-4275: Hydroph0bia SecureFlash Certificate Shadowing

Этот репозиторий содержит исследовательские материалы, связанные с CVE-2025-4275 — уязвимостью обхода Secure Boot, затрагивающей UEFI-совместимую прошивку на базе Insyde H2O. В нём собраны технический анализ уязвимости, бинарные файлы, участвующие в проблеме, а также документация и инструменты, предназначенные для того, чтобы помочь исследователям лучше понять, изучить и поэкспериментировать с этой уязвимостью как в реальных, так и в образовательных контекстах.




📑 Содержание

  • Первоначальное обнаружение и официальные источники
  • Обзор уязвимости (анализ, эксплуатация, PoC)
  • 📂
    • NVRAM и Secure Boot в Insyde H2O
    • Затенение переменных NVRAM
    • Эксплуатация уязвимости
    • Затронутые производители



🧠 Первоначальное обнаружение и официальные источники

CVE-2025-4275 была первоначально обнаружена и ответственно раскрыта Nikolaj Schlej, а координация осуществлялась через CERT/CC. Официальные источники и материалы сообщества:

  • Блог исследователя — часть 1 (обход Secure Boot)
    • Hydroph0bia: A trivial SecureBoot bypass for UEFI-compatible firmware based on Insyde H2O, part 1
  • Блог исследователя — часть 2 (захват DXE-тома)
    • Hydroph0bia: A bit more than just a trivial SecureBoot bypass for UEFI-compatible firmware based on Insyde H2O, part 2
  • Блог исследователя — часть 3 (анализ патча)
    • Hydroph0bia: A fixed SecureBoot bypass for UEFI-compatible firmware based on Insyde H2O, part 3
  • Официальный бюллетень Insyde (10 июня 2025 г.)
    • INSYDE-SA-2025002
  • Коллекция источников сообщества
    • Awesome Bring Your Own Vulnerable UEFI Application



🧪 Обзор уязвимости (анализ, эксплуатация, PoC)

CVE-2025-4275, получившая название Hydroph0bia (каламбур на тему Insyde H2O), — это уязвимость обхода Secure Boot, затрагивающая UEFI-совместимую прошивку, построенную на платформе Insyde H2O. Уязвимость проистекает из ошибки проектирования подсистемы обновления прошивки: сертификат подписи, который должен загружаться в энергозависимую переменную NVRAM доверенным драйвером, вместо этого может быть предварительно создан как энергонезависимая переменная атакующим, в результате чего прошивка доверяет произвольному внешнему коду так, как если бы он был подписан самой Insyde.

Особую опасность этой уязвимости придаёт сочетание её простоты и масштаба охвата. Для эксплуатации требуются лишь права локального администратора — достаточные для записи файлов в EFI System Partition и создания переменных NVRAM, — и она затрагивает любую систему с прошивкой Insyde H2O, собранной до 10 июня 2025 года. Атака не зависит от OEM, то есть применима повсеместно к Acer, Dell, Framework, Fujitsu, HP, Huawei, Lenovo и любому другому производителю, поставляющему прошивку на базе Insyde.


🔐 NVRAM и Secure Boot в Insyde H2O

UEFI предоставляет абстрактный интерфейс к энергонезависимому хранилищу переменных, известному как NVRAM. Одна давняя особенность этого интерфейса заключается в том, что энергонезависимая переменная с заданным именем и GUID может сосуществовать с энергозависимой переменной с той же идентичностью и затенять её. Если код ожидает энергозависимую переменную (созданную во время выполнения доверенным драйвером), но энергонезависимая с тем же именем уже существует, вместо неё может быть использована энергонезависимая версия. Такое поведение, иногда называемое затенением переменных NVRAM, лежит в основе данной уязвимости.

Подсистема обновления прошивки Insyde H2O полагается на две переменные NVRAM для передачи сертификата подписи между драйверами:

  • SecureFlashSetupMode: переменная-триггер, считываемая SecurityStubDxe для активации проверки на основе сертификата.
  • SecureFlashCertData: переменная, несущая сертификат подписи в формате EFI_SIGNATURE_LIST, используемая для аутентификации приложения обновления прошивки (isflash.bin).

В ожидаемом сценарии обе переменные создаются как энергозависимые драйвером BdsDxe в процессе обновления прошивки. Затем SecurityStubDxe использует их, чтобы убедиться, что isflash.bin подписан сертификатом Insyde, прежде чем разрешить его выполнение. Критическая ошибка заключается в том, что SecurityStubDxe не проверяет, являются ли эти переменные энергозависимыми или энергонезависимыми, прежде чем доверять их содержимому.


💣 Затенение переменных NVRAM

Первопричина CVE-2025-4275 заключается в том, что SecurityStubDxe использует обобщённую библиотечную функцию для чтения SecureFlashSetupMode и SecureFlashCertData вместо прямого вызова runtime-сервиса GetVariable. Это означает, что он не может отличить энергозависимую переменную, заданную доверенным BdsDxe, от энергонезависимой, предварительно созданной атакующим (подробное объяснение этой конкретной техники см. в следующем репозитории "TheMalwareGuardian: Exploitation Technique NVRAM Variable Shadowing").

В результате атакующий с правами локального администратора может:

  • Создать энергонезависимую переменную-триггер SecureFlashSetupMode до начала процесса обновления прошивки.
  • Создать энергонезависимую переменную SecureFlashCertData, содержащую контролируемый атакующим сертификат в формате EFI_SIGNATURE_LIST.

При следующей загрузке SecurityStubDxe обнаружит обе переменные, воспримет их как легитимные и будет доверять любому UEFI-исполняемому файлу, подписанному сертификатом атакующего, фактически полностью обходя Secure Boot. Никакого взаимодействия на уровне прошивки, доступа к оборудованию или эксплуатации примитива повреждения памяти не требуется. Поверхностью атаки является просто интерфейс записи UEFI NVRAM, доступный из привилегированной сессии ОС.


💥 Обнаружение и эксплуатация уязвимости

Уязвимость была обнаружена в ходе проверки безопасности HUAWEI MateBook 14 2023, работающего на прошивке на базе Insyde H2O с включёнными Secure Boot, паролем прошивки и другими современными функциями безопасности. Несмотря на эти защиты, полная эксплуатация была достигнута с использованием только прав администратора на уровне ОС.

Начальный этап эксплуатации требует небольшого инструмента для Windows (SFCD), который:

Скачать инструмент
  • Получает привилегию SeSystemEnvironmentPrivilege, необходимую для вызова SetFirmwareEnvironmentVariable.
  • Создаёт энергонезависимую переменную SecureFlashCertData, содержащую контролируемый атакующим сертификат.
  • Создаёт энергонезависимую переменную-триггер SecureFlashSetupMode со значением 1.

После перезагрузки SecurityStubDxe считывает обе переменные и начинает доверять всему, что подписано сертификатом атакующего. Практической демонстрацией этого первого этапа является загрузка UEFI-драйвера CrScreenshotDxe, подписанного пользовательским сертификатом, который успешно делает снимок экрана BIOS Setup при включённом Secure Boot в качестве доказательства выполнения произвольного кода в среде прошивки.

Важный нюанс: переменная IhisiParamBuffer, присутствующая в CVE-2025-3052, часто заблокирована на платформах на базе Insyde, что затрудняет там прямую эксплуатацию. CVE-2025-4275 не требует, чтобы такая переменная была доступна для записи, и не зависит от какого-либо примитива повреждения памяти. Атака работает на любой системе Insyde H2O, где атакующий может писать в NVRAM, что является поведением по умолчанию на непатченной прошивке.


🎯 Атака (часть 1 — обход Secure Boot)

Ниже описана сквозная атака для начального этапа обхода Secure Boot в предположении привилегированного атакующего с доступом на уровне ОС:

  1. Создание пользовательского сертификата: атакующий генерирует пару ключей и оборачивает публичный сертификат в формат EFI_SIGNATURE_LIST.
  2. Установка переменных NVRAM: используя инструмент SFCD из сессии администратора Windows, атакующий создаёт энергонезависимые SecureFlashCertData (содержащую пользовательский сертификат) и SecureFlashSetupMode (со значением 1).
  3. Подпись полезной нагрузки: атакующий подписывает любое UEFI-приложение или драйвер своим пользовательским закрытым ключом.
  4. Регистрация полезной нагрузки: подписанная полезная нагрузка регистрируется как UEFI-драйвер через механизм загрузочной опции DriverXXXX или размещается как загрузочная запись в UEFI Boot Manager.
  5. Перезагрузка: при следующей загрузке SecurityStubDxe считывает затенённые переменные NVRAM, доверяет сертификату атакующего и разрешает выполнение подписанной полезной нагрузки независимо от состояния Secure Boot.

🔺 Эскалация (часть 2 — захват DXE-тома)

Обход Secure Boot, достигнутый в части 1, открывает дверь к значительно более серьёзному второму этапу: полному захвату DXE-тома, достигаемому путём перехвата самого процесса обновления прошивки Insyde.

Подсистема обновления прошивки в Insyde H2O работает следующим образом: обновляющее приложение ОС размещает капсулу прошивки и подписанное приложение-обновлятор (isflash.bin) в EFI System Partition, затем устанавливает флаг SecureFlashTrigger=1 внутри переменной NVRAM SecureFlashInfo. При следующей загрузке прошивка обнаруживает триггер, отключает защиты от записи во флеш-память на этапе PEI и в конечном итоге вызывает LoadImage для isflash.bin после проверки его по сертификату Insyde — тот самый механизм сертификатов, который CVE-2025-4275 позволяет атакующему подменить.

Для эскалации от обхода Secure Boot к захвату DXE требуются три дополнительных технических шага:

  • Обход удаления SecureFlashCertData : SecureFlashDxe пытается удалить переменную сертификата перед вызовом LoadImage, используя «голый» вызов SetVariable, который не может удалить специальные переменные Insyde Authenticated Write (AW). Атакующий повторно устанавливает сертификат как специальную переменную с атрибутом AW, чтобы пережить эту попытку удаления.
  • Разблокировка InsydeVariableLock: VariableRuntimeDxe устанавливает глобальный флаг (InsydeVariableLock), который предотвращает создание AW-переменных после запуска BDS. Зарегистрировав UEFI-драйвер через DriverXXXX (который выполняется до того, как этот замок будет задействован), атакующий находит флаг в памяти, разбирая цепочку хуков BdsArchProtocol->Entry, и переключает его с 1 на 0.
  • Установка SecureFlashInfo: переменная SecureFlashInfo обычно защищена VariableLockProtocol, но этот замок задействуется только на этапе ReadyToBoot. Драйвер, зарегистрированный через DriverXXXX, выполняется до этого события и может свободно установить SecureFlashTrigger=1, чтобы инициировать процесс обновления прошивки.

Как только все три условия выполнены, прошивка перезагружается в режим обновления, загружает пользовательский isflash.bin атакующего (подписанный сертификатом атакующего, которому теперь доверяют из-за затенённой SecureFlashCertData) и выполняет его при незащищённой SPI-флеш-памяти. Из этой позиции атакующий может записать произвольное содержимое в DXE-том, устанавливая постоянные драйверы или модифицируя компоненты прошивки так, что это переживает переустановку ОС и большинство средств защиты.


🩹 Исправление (часть 3 — анализ патча)

Insyde выпустила исправление в рамках цикла патчей от 10 июня 2025 года. Исправление было проанализировано путём сравнения двух последовательных обновлений BIOS Dell (одного до патча, одного после) с использованием отчётов, сгенерированных UEFITool, и бинарного диффинга через Diaphora.

Изменения были сосредоточены в трёх драйверах:

  • BdsDxe: «голый» вызов gRT->SetVariable (который не мог удалить специальные переменные с атрибутом AW) заменён на вызов LibSetSecureVariable, использующий SMM-взаимодействие и способный удалять такие переменные.
  • SecureFlashDxe: применена та же замена на LibSetSecureVariable, добавлено явное удаление SecureFlashSetupMode и SecureFlashCertData в точке входа драйвера, а также зарегистрирована VariablePolicy для обеих переменных, чтобы блокировать их создание из кода на уровне ОС.
  • SecurityStubDxe: незначительное несвязанное исправление обработчика события `ExitBootServices; основной путь уязвимости остаётся структурно неизменным.

Исправление эффективно при условии, что атакующий не может обойти VariablePolicy или LibSetSecureVariable. Однако реализация VariablePolicy по умолчанию в EDK2 внутренне использует глобальный флаг, структурно похожий на InsydeVariableLock, побеждённый в части 2. Физическое редактирование NVRAM с помощью аппаратного программатора SPI также полностью обошло бы исправление, хотя физические атаки традиционно выходят за рамки моделей угроз Secure Boot.

Рекомендованное исследователем средство исправления — полное удаление NVRAM из механизма передачи сертификата между BdsDxe и SecurityStubDxe — было опробовано Insyde, но вызвало регрессии и было отложено до будущего инженерного цикла.


📦 Затронутые производители

Любой производитель, поставляющий прошивку на базе Insyde H2O, собранную до 10 июня 2025 года, потенциально затронут. Подтверждённый статус на момент раскрытия:

ПроизводительСтатус
DellИсправлено — обновления BIOS выпущены вскоре после окончания эмбарго
LenovoУязвимо — исправления анонсированы, поставка с 2025-07-30
FrameworkУязвимо — оценка сроков поставки на момент раскрытия не предоставлена
AcerБюллетень или исправление на момент раскрытия не опубликованы
FujitsuБюллетень или исправление на момент раскрытия не опубликованы
HPБюллетень или исправление на момент раскрытия не опубликованы
HuaweiПроизводитель исходного тестового устройства — статус исправления неизвестен



🤝 Исследования и сотрудничество

Работаете над чем-то похожим? Исследуете UEFI, безопасность ядра, эксплуатацию или другую интересную тему в области безопасности? Если вам нужна помощь в разработке эксплойта, изучении техники или просто хотите обменяться идеями, не стесняйтесь обращаться. Я всегда открыт для обсуждения исследований, помощи, где могу, и сотрудничества по интересным проектам. Свяжитесь со мной в LinkedIn.