Контейнеры перестали быть границей безопасности

· Безопасность
Исследователь безопасности Чжэньпэн Линь утверждает: с ростом возможностей ИИ поиск и эксплуатация уязвимостей ядра Linux упростились настолько, что побег из контейнера следует считать доступным атакующим по умолчанию.

cover.svg

Контейнеры десятилетиями считали надёжной границей изоляции: на них полагаются облачные платформы, кластеры Kubernetes с тысячами сервисов и даже организаторы CTF-соревнований, размещающие задачи на одном сервере. Исследователь Чжэньпэн (Лео) Линь из depthfirst утверждает, что эта модель угроз мертва.

Причина проста: контейнер не несёт собственной операционной системы. Все контейнеры на узле делят одно монолитное ядро Linux с хостом. Namespaces, cgroups и профили seccomp-bpf работают в пользовательском пространстве, но системные вызовы проходят прямо к общему ядру. Стоит найти в подсистеме ядра уязвимость, достижимую изнутри контейнера, — и атакующий поднимает привилегии до уровня ядра, минуя всю пользовательскую изоляцию, после чего может добраться до хоста, соседних контейнеров и всего узла кластера.

Роль ИИ

Раньше находить такие ошибки и превращать их в эксплойты умели лишь самые квалифицированные специалисты. По словам автора, ИИ полностью изменил картину. За 2026 год к середине сентября опубликовано 5976 уникальных CVE в ядре Linux: в январе их было около 250, а в августе — уже 1650, более четверти годового объёма за один месяц. Дистрибутивы не успевают бэкпортировать исправления, и в продакшене копится масса непропатченных багов. Из 36 CVE, раскрытых в рамках Google kernelCTF, тринадцать достижимы через обычные непривилегированные интерфейсы — epoll, futex, POSIX-таймеры, сокеты AF_UNIX.

CVE-2026-80521

В качестве демонстрации команда описывает уязвимость use-after-free в подсистеме AF_UNIX, найденную их внутренней ИИ-моделью dfs-large1. Ошибка кроется в сборщике мусора, очищающем сокеты при передаче файловых дескрипторов через SCM_RIGHTS: гонка приводит к тому, что освобождённый узел (unix_vertex) остаётся в персистентном кольце, и следующий проход сборщика разыменовывает освобождённую память. 24 июля команда выиграла слот в kernelCTF с zero-day-эксплойтом. Тот же баг независимо нашёл исследователь из OpenAI. Патч вышел 6 августа, однако, по утверждению авторов, в свежем Ubuntu 26.04 уязвимость на момент публикации оставалась незакрытой. Код полного эксплойта для побега из контейнера выложен на GitHub, вместе с отдельным эксплойтом против Ubuntu 24.04.

Вывод

Автор призывает исходить из того, что атакующие уже способны покидать стандартные контейнеры по своему желанию. Рекомендация — переносить недоверенные и чувствительные нагрузки в микро-ВМ: Firecracker или Kata Containers дают каждой нагрузке собственное лёгкое ядро, так что даже успешный эксплойт компрометирует лишь одну эфемерную инстанцию, не затрагивая хост и других арендаторов. Эпоха доверия к общему ядру, по его словам, закончилась.


Источник: Lobsters

Комментарии

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

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