CVE: CVE-2025-70290
Продукт: Debian
Дата публикации: 26.08.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,46%; процентиль 38,03%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В загрузчике U-Boot, поставляемом в дистрибутивах Debian, обнаружена критическая уязвимость, позволяющая злоумышленнику выполнить код на этапе загрузки системы. Ошибка возникает при обработке повреждённых метаданных файловой системы ZFS. В настоящее время исправление для всех версий Debian не выпущено, что требует от администраторов оценки рисков и применения временных мер защиты.
Основные характеристики
Риск представляет собой возможность выполнения произвольного кода на этапе загрузки системы (boot-time) при обработке специально сформированного носителя с файловой системой ZFS. Это может привести к полной компрометации устройства до загрузки операционной системы.
- Тип ошибки: Переполнение целочисленного значения (CWE-190) и запись за границами буфера (CWE-787).
- CVSS 3.1: 9.8 (CRITICAL). Вектор:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.
- Условия атаки: Удалённый доступ (AV:N), низкая сложность (AC:L), отсутствие необходимости в правах (PR:N) и взаимодействии пользователя (UI:N).
- Эксплуатация: Подтверждённая эксплуатация в реальных атаках не зафиксирована.
- EPSS: 0,46% (процентиль 38,03%).
Какие продукты и версии затронуты
Уязвимость затрагивает пакет
u-boot во всех поддерживаемых и нестабильных версиях дистрибутива Debian. Согласно данным Debian Security Tracker, статус уязвимости для всех перечисленных релизов является «open» (открыт), а срочность исправления не назначена.- Debian 12 (bookworm): версия пакета
2023.01+dfsg-2+deb12u3.
- Debian 11 (bullseye): версии пакетов
2021.01+dfsg-5и2021.01+dfsg-5+deb11u3.
- Debian 13 (trixie): версия пакета
2025.01-3.
- Debian unstable (sid): версия пакета
2025.01-3.2.
- Debian forky: версия пакета
2025.01-3.2.
Все перечисленные версии содержат уязвимый код, так как исправление в релизе U-Boot 2026.04 ещё не портировано в дистрибутив.
Причина уязвимости
Причина уязвимости кроется в недостаточной валидации метаданных файловой системы ZFS в коде загрузчика U-Boot. При чтении информации с диска программа рассчитывает размер выделяемой памяти на основе значений, полученных из метаданных.
Если злоумышленник сформировал носитель с некорректными (malformed) метаданными, может произойти переполнение целочисленного значения. В результате система выделит блок памяти меньшего размера, чем требуется для последующей записи данных. Это приводит к записи за границами выделенного буфера (out-of-bounds memory access), что нарушает целостность памяти и может вызвать сбой или выполнение произвольного кода.
Как работает атака
Атака реализуется на этапе инициализации системы, когда U-Boot пытается смонтировать или прочитать файловую систему ZFS. Злоумышленник должен иметь возможность предоставить системе носитель (флеш-накопитель, SD-карта или удалённый образ) с специально подготовленными метаданными ZFS.
При обработке этих данных срабатывает логическая ошибка в расчёте размера буфера. Переполнение приводит к выделению памяти недостаточного размера.
Последующая операция записи данных в этот буфер выходит за его пределы, перезаписывая соседние области памяти. Это позволяет атакующему изменить управление потоком программы и выполнить вредоносный код в контексте загрузчика.
Условия успешной эксплуатации
Для успешной эксплуатации уязвимости атакующему необходимо выполнить следующие условия:
- Контроль за носителем: Злоумышленник должен иметь возможность загрузить систему с носителя, содержащего сформированные метаданные ZFS (например, через USB-порт или сетевую загрузку).
- Включение поддержки ZFS: В конфигурации U-Boot должна быть активирована поддержка файловой системы ZFS.
- Отсутствие защиты на этапе загрузки: Система не должна иметь механизмов, предотвращающих чтение повреждённых метаданных до их обработки уязвимым кодом.
Возможный сценарий атаки
Сценарий атаки предполагает, что злоумышленник получает физический или логический доступ к устройству, использующему U-Boot. Он создаёт образ носителя с файловой системой ZFS, в котором значения в метаданных специально искажены для вызова переполнения.
Пользователь или автоматический процесс инициализирует загрузку с этого носителя. U-Boot начинает чтение метаданных и попадает в уязвимый код.
Происходит некорректное выделение памяти и последующая запись за её пределами. В результате атакующий получает выполнение кода на этапе загрузки, что позволяет ему перехватить управление системой до загрузки ядра Linux.
Есть ли публичный эксплойт
В открытом доступе существует техническое описание уязвимости и ссылка на gist, содержащий детали проблемы. Однако подтверждённая массовая эксплуатация в реальных атаках (active exploitation) в каталоге CISA KEV не зафиксирована.
Наличие технического описания означает, что атакующие могут самостоятельно разработать эксплойт на основе опубликованных данных. Отсутствие сведений о реальной эксплуатации не гарантирует, что уязвимость не используется в целевых атаках.
Признаки эксплуатации
Специфические индикаторы компрометации (IOC) для этой уязвимости не опубликованы. Поскольку атака происходит на этапе загрузки, стандартные логи операционной системы могут не содержать информации о ней.
Общие (неспецифичные) точки контроля включают:
- Анализ логов U-Boot (если они сохраняются) на предмет аномальных сбоев или сообщений об ошибках при монтировании ZFS.
- Проверка целостности загрузчика (U-Boot) на предмет модификации.
- Мониторинг попыток загрузки с внешних носителей на критических системах.
Как обнаружить атаку
Обнаружение атаки затруднено из-за её положения на этапе загрузки. Рекомендуется внедрять механизмы контроля целостности загрузчика (Secure Boot) и использовать аппаратные средства защиты, если они доступны.
Для мониторинга следует:
- Настроить сбор логов U-Boot в отдельное хранилище.
- Использовать системы обнаружения вторжений (IDS), способные анализировать сетевой трафик при сетевой загрузке (PXE).
- Регулярно проверять целостность загрузочных секторов и загрузчика.
Как проверить свою версию
Для проверки текущей версии пакета
u-boot в системе Debian используйте следующие команды. Замените <имя-пакета> на u-boot.
Bash:
cat /etc/debian_version
cat /etc/os-release
apt-cache policy u-boot
dpkg-query -W -f='${Package} ${Version}\n' u-boot
Сравните полученную версию с уязвимыми версиями, перечисленными в разделе «Какие продукты и версии затронуты».
Исправление
На момент подготовки материала официальное исправление для пакета
u-boot в дистрибутивах Debian не выпущено. Статус во всех релизах (bookworm, bullseye, trixie, sid, forky) остаётся «open».Рекомендуемые действия:
- Отслеживать обновления в Debian Security Tracker.
- При выходе патча немедленно применить его.
- Для систем, где загрузка с ZFS не требуется, рассмотреть возможность отключения поддержки ZFS в конфигурации U-Boot (если это позволяет конфигурация).
- Ограничить физический и сетевой доступ к устройствам, использующим U-Boot, до выхода исправления.
Временные меры защиты
Пока исправление не выпущено, можно применить следующие временные меры:
- Ограничение загрузки: Запретить загрузку с внешних носителей (USB, SD) в BIOS/UEFI или в конфигурации U-Boot.
- Сетевая изоляция: Ограничить доступ к портам, используемым для сетевой загрузки (PXE), если это применимо.
- Отключение ZFS: Если функциональность ZFS не критична, отключить поддержку этой файловой системы в U-Boot.
- Физическая защита: Ограничить физический доступ к портам устройств, чтобы предотвратить подключение вредоносных носителей.
Как проверить устранение уязвимости
После применения исправления (когда оно будет выпущено) необходимо проверить, что версия пакета соответствует исправленной.
Bash:
dpkg-query -W -f='${Package} ${Version}\n' u-boot
Убедитесь, что версия пакета не входит в список уязвимых версий. Также рекомендуется пересобрать образы загрузчика, если они используются в автоматизированном развёртывании.
Вывод
CVE-2025-70290 представляет собой критический риск для систем, использующих U-Boot с поддержкой ZFS. Отсутствие исправления в Debian на текущий момент требует от администраторов повышенного внимания. Применение временных мер защиты и мониторинг обновлений являются ключевыми шагами для снижения риска компрометации на этапе загрузки.
Официальные источники
История обновлений статьи
- 30.08.2026 — Опубликована первая версия материала.
