Cloudflare устранила утечку данных между клиентами в сервисе Containers

· Безопасность
Исследователи из Accomplish показали, как клиент платного тарифа Workers мог считывать остаточные данные с дисков, ранее использованных чужими контейнерами на том же сервере.

cover.svg

4 сентября 2026 года Орен Йомтов, исследователь безопасности из компании Accomplish, через программу вознаграждений Cloudflare сообщил об уязвимости в сервисах Containers и построенных на них Sandboxes. Cloudflare полностью устранила проблему и заявляет, что не нашла свидетельств компрометации данных клиентов.

В чём была суть

Containers запускают нагрузки на многопользовательской инфраструктуре и сами распределяют их по серверам — клиент не выбирает хост. Исследователи показали, что владелец платного аккаунта Workers мог восстановить остаточные блоки диска, ранее принадлежавшие чужим контейнерам на том же сервере. Нацелиться на конкретного клиента, нагрузку или данные при этом было невозможно, а наличие остаточных данных не гарантировалось.

Каждому контейнеру выделяется записываемый корневой диск через механизм Linux device mapper thin provisioning (dm-thin); контейнер работает внутри отдельной виртуальной машины Firecracker, где диск виден как /dev/vdc. Физическое место выделяется только при первой записи в неотображённую область. Проблема была в опции skip_block_zeroing: с ней dm-thin не обнулял вновь выделяемые блоки размером 64 КиБ. Если новый контейнер записывал в такой блок лишь 4 КиБ, оставшиеся 60 КиБ сохраняли содержимое прежнего владельца, и его можно было прочитать напрямую с устройства.

Что удалось извлечь

Чтобы отличить свои блоки от чужих, исследователи использовали контрольные суммы каталогов ext4. На шести производственных размещениях из 5614 проверенных блоков ни один не принадлежал их собственной файловой системе, зато обнаружились 2700 чужих inode. В итоге остаточные данные нашлись на 18 из 24 размещений и на 20 из 22 узлов на четырёх континентах: среди них — структуры каталогов, страницы баз данных и целые SQLite-базы. По утверждению Cloudflare, в переданных ей материалах не было ни имён файлов, ни учётных данных, ни самих извлечённых значений, а исследователи подтвердили, что надёжно удалили восстановленные данные.

Устранение

Первым шагом Cloudflare убрала skip_block_zeroing из конфигурации пулов по всему парку — dm-thin снова стал обнулять новые блоки, и экспл­ойт перестал работать, что подтвердили сами исследователи. Однако обнуление не очищало блоки, уже отображённые в работающих дисках и в кэше подготовленных снимков образов. Поэтому Cloudflare в непиковые часы вывела из эксплуатации все действующие диски контейнеров, перезапустила виртуальные машины и очистила кэш образов на каждом хосте, чтобы диски пересоздавались с обнулением.

По словам компании, анализ исторической телеметрии дисковых операций выявил активность лишь исследователей и инженеров Cloudflare, проводивших санкционированную проверку; признаков стороннего использования уязвимости не обнаружено. От первого сообщения 4 сентября до завершения очистки всего парка прошло чуть больше двух недель — до 19 сентября.


Источник: Cloudflare Blog

Комментарии

Войдите, чтобы комментировать.

  • Пока нет комментариев.