Docker выпустила Docker Desktop 4.98.0 и Docker Buildx 0.37.2. В Desktop закрыт обход изоляции контейнера в WSL 2. Это подсистема Windows для запуска Linux. Затронуты пользователи Windows, а также все, кто собирает образы через Buildx.
Обход изоляции в WSL 2 под CVE-2026-112917
Эта уязвимость известна как CVE-2026-112917. Её оценка по CVSS 4.0, шкале опасности уязвимостей, составляет 9.2. При этом сведений об эксплуатации в реальных атаках нет. Аналитики CISA добавили, что автоматически эксплуатировать её пока нельзя.
Атака идёт локально, без прав администратора и без участия пользователя. Достаточно непривилегированного Linux-контейнера на хосте x86-64. При этом затронуты только сборки Docker Desktop для Windows с серверной частью WSL 2. Контейнеры на базе LinuxKit уязвимости не подвержены.
Внутри контейнера срабатывает 32-битный интерфейс системных вызовов. Он обходит фильтр seccomp, механизм ограничения вызовов ядра. В результате снимается запрет на AF_VSOCK, семейство сокетов для обмена с хостом. После этого контейнер видит службы хоста и файлы Windows, доступные вошедшему пользователю.
Закрыть уязвимость можно только парой обновлений. Нужны Docker Desktop 4.98.0 или новее и WSL 3.0.3 или новее. Если поставить новый Desktop на старую WSL, уязвимость сохранится. Обходных мер разработчик не привёл. Уязвимость нашли исследователи Oryam Halachmi и Tevel Halachmi из компании Deune.
Buildx 0.37.2 закрывает пропуск согласия
Вторая уязвимость касается Buildx, инструмента для сборки контейнерных образов. Описание есть в уведомлении GHSA-gwr2-q96m-6682 и в записи CVE-2026-93325. По шкале CVSS 4.0 уровень опасности здесь высокий. При этом уязвимость живёт с версии 0.21.0.
Buildx умеет собирать образы по описанию в файле, этот режим называют bake. Перед выходом за пределы рабочего каталога пользователь выдаёт разрешение. Оно оформляется ключом allow или интерактивным запросом. Однако есть исключение.
В режиме вывода rawjson этот шаг пропускается. Поэтому сборка на недоверенном описании читает файлы вне проекта без ведома пользователя. Для сборочных конвейеров это важно. Когда описание приходит из внешнего репозитория, режим rawjson убирает проверку согласия.
Требования к атаке при этом всё же есть. Пользователь ничего не подтверждает и не замечает. До исправления разработчик советует не запускать bake на недоверенных описаниях. Другой режим вывода сохраняет проверку согласия.
Исправление вышло в версии 0.37.2. Уведомление опубликовано 30 сентября. При этом в записи CVE исправленная версия не указана. Об уязвимости сообщил Jabr Al-Otaibi совместно с Trend Micro Zero Day Initiative, номер ZDI-CAN-31688. Сведений о реальных атаках нет.
Ядерная уязвимость закрыта в Docker Desktop 4.98.0
Третья уязвимость пришла из ядра Linux и закрыта в Docker Desktop 4.98.0. Речь о CVE-2026-98432, ошибке в обработке TCP-соединений по IPv4. Гонку создаёт одновременная обработка повторного запроса на соединение. В результате код обращается к уже освобождённой памяти. Последствия затрагивают конфиденциальность, целостность и доступность.
Атака идёт по сети, сложность низкая. Для неё не нужны ни права, ни участие пользователя. Уязвимы ядра начиная с версии 4.4. Исправления вошли в стабильные ветки, включая 6.1.190 и 6.6.159. При этом обновлять стоит не только Desktop, но и ядра на серверах.
В том же релизе Desktop есть и другие изменения. На Mac убрали привилегированный системный помощник, который ставился прежними версиями. Теперь он удаляется автоматически при обновлении. Кроме того, проверка общих каталогов в Windows теперь сравнивает полные имена. После обновления стоит перепроверить настройки общих папок.
Порядок действий простой. Сначала обновляют Docker Desktop до 4.98.0 и WSL до 3.0.3. Затем проверяют версии Buildx в сборочных конвейерах. После этого обновляют ядра на хостах, где работают контейнеры. Пропуск хотя бы одного шага сохраняет риск.