Бюллетень безопасности — CVE-2026-53359 ("Januscape"): выход из гостя в хост в KVM (guest-to-host escape)

Уровень серьёзности: High для кластеров, где запущена виртуализация. Статус: исправленного релиза Talos пока нет — меры по устранению требуются уже сейчас.
Что произошло
6 июля 2026 года уязвимость ядра Linux — CVE-2026-53359 («Januscape») — была публично раскрыта вместе с рабочим эксплойтом. Это уязвимость типа use-after-free в теневом MMU KVM/x86, которая позволяет гостевой ВМ вырваться в свой хост (узел кластера) или вызвать сбой ядра узла. Она затрагивает процессоры как Intel, так и AMD, и присутствовала в ядре в скрытом виде с 2010 года.
Исправление из upstream вошло в стабильные ядра (6.18.38, 6.12.95, 6.6.144, 6.1.177, 7.1.3) 4 июля 2026 года, но Talos Linux пока не выпустил образ с исправленным ядром. Все текущие версии Talos по-прежнему работают с уязвимым ядром.
Кто затронут
Установки Cozystack, где запущены виртуализация или кластеры Kubernetes арендаторов — узлы Kubernetes арендаторов представляют собой ВМ KubeVirt, поэтому они тоже относятся к затронутым. Если вы запускаете только контейнеризированные рабочие нагрузки и никогда не создаёте ВМ или кластеры арендаторов, уровень вашей подверженности риску значительно ниже.
Риск
Эксплойту нужны две вещи, которые у арендатора уже есть: root внутри собственной ВМ и вложенная виртуализация, доступная гостю (включена по умолчанию). Затем злоумышленник-арендатор может:
- вызвать сбой ядра узла, обрушив каждую ВМ соседних арендаторов на этом узле (отказ в обслуживании), либо
- при наличии рабочего эксплойта выполнить код на узле и скомпрометировать кластер.
Изоляция в песочнице KubeVirt (непривилегированные контейнеры, seccomp, SELinux) не останавливает эту атаку — ошибка находится в ядре хоста и достигается через обычный интерфейс KVM, которым обязана пользоваться каждая ВМ.
Рекомендуемые меры по устранению: отключить вложенную виртуализацию
ВМ Cozystack не нуждаются во вложенной виртуализации. Её отключение полностью устраняет поверхность атаки, независимо от версии ядра.
Talos (большинство кластеров)
Добавьте в конфигурацию машины Talos, в раздел machine.install:
machine:
install:
# Только для Talos >= 1.12: задайте grubUseUKICmdline false, чтобы аргументы применялись
# (иначе на системах UEFI/UKI они молча игнорируются).
grubUseUKICmdline: false
extraKernelArgs:
- kvm_intel.nested=0
- kvm_amd.nested=0
Обе строки безопасны на Intel и AMD — та, что не соответствует вашему процессору, игнорируется. На Talos версий до 1.12 поле grubUseUKICmdline отсутствует, а extraKernelArgs игнорируется на узлах UEFI/UKI; там аргументы необходимо встроить в загрузочный образ через Image Factory.
Применяйте это в два шага — talm apply, затем talm upgrade. Сначала отправьте обновлённую конфигурацию машины на узел, затем повторно запустите установщик Talos, чтобы аргументы ядра были записаны в загрузочную конфигурацию (один только обычный talm apply не перезаписывает загрузочную конфигурацию). Вы можете обновиться до той же версии Talos, на которой уже находитесь — смысл в том, чтобы повторно запустить установщик с новыми аргументами:
# 1. Отправьте обновлённую конфигурацию машины на узел
talm apply -f nodes/<node>.yaml
# 2. Повторно запустите установщик, чтобы аргументы ядра попали в загрузочную конфигурацию (это перезагрузит узел)
talm upgrade -f nodes/<node>.yaml
Предупреждение: это перезагрузит узел. Разворачивайте изменение по одному узлу за раз, дожидаясь, пока каждый узел не перейдёт в состояние Ready (а на узлах control-plane — восстановления кворума etcd), прежде чем переходить к следующему.
Обычные хосты Linux (не Talos)
Создайте /etc/modprobe.d/cozystack-kvm-nested.conf:
options kvm_intel nested=0
options kvm_amd nested=0
Затем перезагрузите узел (или перезагрузите модуль kvm), чтобы изменение вступило в силу.
Автоматизация
Мы обновили наши навыки Claude Code для Cozystack, чтобы они предписывали и проверяли эти меры по устранению во время начальной настройки (bootstrap) и обновлений, так что параметр помещается в machine.install и сохраняется при будущих обновлениях Talos:
cozystack/ccp#17.
Вы можете использовать навыки cozystack:talos-bootstrap и cozystack:cluster-upgrade, чтобы применить и проверить это изменение автоматически.
После выхода исправленного Talos
Как только Talos выпустит образ с исправленным ядром (6.18.38 или новее), обновляйтесь обычным образом. Вы можете оставить вложенную виртуализацию отключённой в качестве меры усиления защиты либо снова включить её (удалив два аргумента), если этого требует конкретная рабочая нагрузка. Мы уведомим вас, когда станет доступен исправленный релиз Talos.
Присоединяйтесь к сообществу
- GitHub: cozystack/cozystack
- Telegram: @cozystack
- Slack: #cozystack в рабочем пространстве Kubernetes ( приглашение)
- Подпишитесь на календарь встреч нашего сообщества
- Добавьте встречи в свой календарь