Intel и AMD старались, а брешь все испортила. Как вытащить данные из самых «неприступных» VM

leer en español

Intel и AMD старались, а брешь все испортила. Как вытащить данные из самых «неприступных» VM

Trail of Bits вскрыла проблему, из-за которой LUKS2 думает, что шифрует, но пишет в открытую.

image

Специалисты Trail of Bits раскрыли серию уязвимостей, затрагивающих 8 систем конфиденциальных вычислений, в которых используется формат шифрования дисков LUKS2 (Linux Unified Key Setup version 2). Ошибки в обработке метаданных позволяют атакующему с доступом к физическим носителям получить полный доступ к зашифрованной информации и произвольно изменять содержимое диска.

Проблемы связаны с тем, что заголовки LUKS2 оказываются «модифицируемыми» — злоумышленник может подменить алгоритм шифрования так, чтобы виртуальная машина внутри защищённой среды начала использовать «нулевой» шифр и фактически записывала открытые данные. Уязвимости получили идентификаторы CVE-2025-59054 (оценка CVSS: 8.5) и CVE-2025-58356 (оценка CVSS: 8.3).

Слабое место проявляется в виртуальных машинах с аппаратной изоляцией, использующих технологии AMD SEV-SNP и Intel TDX. Эти механизмы создают доверенную среду выполнения, где память и процессы защищены даже при взломе хостовой системы. Однако в процессе загрузки таких виртуальных машин диск, зашифрованный с помощью LUKS2, может быть подменён, и встроенные средства защиты не заметят вмешательства. При этом LUKS2 изначально создавался для классического сценария «шифрования данных на покое», а не для эксплуатации в средах, где хранилище потенциально контролируется атакующим.

Trail of Bits подчёркивает, что подмена метаданных позволяет внедрить в заголовок параметр cipher_null-ecb — режим, который фактически отключает шифрование. В результате данные записываются в незашифрованном виде, а система при этом уверена, что они защищены AES-XTS. Более того, если «нулевой» алгоритм применяется для шифрования ключевого слота, открыть диск можно с любым паролем, что делает компрометацию полной. Достаточно модифицировать заголовок и предоставить диск доверенной виртуальной машине — она примет его за легитимный и начнёт использовать без ошибок.

После уведомления разработчиков утилиты cryptsetup, на которой основан LUKS2, в версии 2.8.1 появилось частичное исправление — теперь null-шифры запрещены для использования при защите ключевых слотов с непустыми паролями. Однако возможность их применения к основным томам пока остаётся, и именно это открывает возможность атаки при наличии доступа к устройству хранения. Сам по себе эксплойт требует возможности записи в зашифрованный диск, но не требует знания ключей или паролей.

Trail of Bits уведомила 8 проектов, использующих LUKS2 в конфиденциальных вычислительных средах:

Oasis Protocol (oasis-sdk 0.7.2),
Phala Network (dstack 0.5.4),
Flashbots TDX (tdx-init 0.2.0),
Secret Network (secret-vm-ops),
Fortanix Salmiac,
Edgeless Constellation (v2.24.0),
Edgeless Contrast (v1.12.1, v1.13.0),
Cosmian VM.

Все они выпустили обновления, устраняющие риск эксплуатации. В частности, Flashbots и Fortanix внедрили механизм проверки целостности заголовка на основе MAC, а Constellation, Oasis и Cosmian добавили валидацию JSON-метаданных LUKS перед монтированием. Команда Confidential Containers подтвердила получение отчёта, но пояснила, что соответствующий компонент пока не используется в продакшне.

Исследователи отмечают, что для защиты систем необходимо полностью проверять заголовок LUKS2 до начала работы с диском. Это можно сделать, используя режим detached-header, когда метаданные считываются не с самого накопителя, а из временного хранилища в памяти. Такой подход предотвращает так называемые атаки типа time-of-check-to-time-of-use, при которых злоумышленник меняет содержимое диска после проверки, но до фактического использования.

Для безопасного развёртывания разработчики Trail of Bits предлагают три стратегии:

Первая — вычисление MAC по всему заголовку для проверки его неизменности.
Вторая — строгая валидация параметров JSON-метаданных, исключающая недопустимые режимы шифрования и неожиданные флаги.
Третья — включение хэша заголовка в процесс аппаратной аттестации (TPM или KMS), что делает конфигурацию LUKS частью идентичности виртуальной машины и позволяет удалённым сторонам проверять допустимость параметров до выдачи ключей расшифровки.

В качестве примера реализованной защиты исследователи приводят систему Flashbots tdx-init, где используется MAC-проверка, а также Edgeless Constellation, реализующую строгую проверку JSON-структуры заголовков.

В отчёте напоминается, что подобные ошибки уже встречались ранее — например, CVE-2021-4122 позволяла скрытно расшифровать диск через механизм автоматического восстановления. Текущие уязвимости представляют аналогичный риск для виртуальных сред, где целостность хранилища критична для конфиденциальности вычислений. Авторы подчёркивают, что проблема не эксплуатировалась в реальных атаках, но требует немедленного внимания со стороны всех разработчиков, использующих LUKS2 в инфраструктуре защищённых ВМ.

Исследование подчёркивает фундаментальную особенность конфиденциальных вычислений: в таких архитектурах традиционные модели доверия инвертируются — здесь защищать нужно не хост от гостевой ОС, а наоборот, саму виртуальную машину от потенциально враждебного хоста. При этом большинство классических инструментов Linux, включая LUKS, изначально не проектировались для таких сценариев.

Trail of Bits предупреждает, что описанный случай лишь часть гораздо более широкой проблемы, связанной с применением стандартных утилит в непривычных условиях аппаратной изоляции. Команда компании призывает разработчиков уделять внимание безопасным шаблонам использования и проводить тщательную проверку кода, прежде чем внедрять подобные решения в инфраструктуру конфиденциальных вычислений.

Компания опубликовала полную хронологию координированного раскрытия. Ошибка была обнаружена 8 октября 2025 года, уведомления направлены всем затронутым проектам между 12 и 18 октября, а 19 октября вышел частичный фикс cryptsetup 2.8.1. К 30 октября все основные проекты выпустили обновления. Trail of Bits поблагодарила команды Oasis, Flashbots, Edgeless, Fortanix, Cosmian, Secret Network и другие компании за совместную работу и координацию, а также отметила, что Oasis Network выплатила вознаграждение за найденную ошибку через платформу Immunefi.