Спецпроекты

Безопасность

«Дыра» в Kubernetes позволяла захватывать компьютеры под Windows

Исправленная в ноябре уязвимость позволяла запускать произвольный код в Windows-узлах Kubernetes при соблюдении ряда условий. Патчи вышли ещё в ноябре, но информация опубликована только сейчас.

7,2 балла - не критично, но...

Эксперты по информационной безопасности Akamai опубликовали информацию о высокоопасной уязвимости в Kubernetes, которая позволит потенциальному злоумышленнику произвести запуск произвольного кода с повышенными привилегиями. Эксплуатация возможна при соблюдении ряда условий.

В публикации Томера Пеледа (Tomer Peled), специалиста по защите данных в Akamai, запуск кода возможен на всех эндпойнтах кластера Kubernetes с высшими для среды Windows привилегиями - SYSTEM. Для эксплуатации уязвимости злоумышленник должен разместить в кластере специально подготовленные файлы на языке YAML. Это популярный язык программирования, используемый в приложениях, которые предназначаются для обработки данных.

«В Kubernetes выявлена уязвимость, благодаря которой пользователь, обладающий возможностью создавать поды и постоянные тома в узлах под управлением Windows, может повысить свои привилегии до административного уровня», - говорится в сообщении специалистов по поддержке Kubernetes. По их словам, уязвимость затрагивает кластеры Kubernetes только при использовании плагина для хранилища данных «в дереве».

В Kubernetes обнаружен высокоопасный баг, позволяющий запустить произвольный код при соблюдении определенных условий

«Баг» получил индекс CVE-2023-5528 и оценку 7,2 балла по шкале CVSS.

«7,2 балла - это, скажем так, средне-высокоопасный уровень угрозы, однако он кратно повышается распространённостью Kubernetes», - отмечает Михаил Зайцев, эксперт по информационной безопасности компании SEQ. Он утверждает, что эксплуатация данной уязвимости потребует определённых усилий и соблюдения ряда условий со стороны потенциального злоумышленника, но сам факт, что информация об уязвимости опубликована лишь спустя почти полгода, говорит о том, что она требует серьёзного к себе отношения и внимания.

Уязвимость затрагивала все версии, начиная с 1.8.0. Отдельно были исправлены версии kubelet v1.28.4, v1.27.8, v1.26.11 и v1.25.16.

Ошибка программирования

«Причиной её возникновения стал «небезопасный вызов функции», а конкретно, (MountSensistive)] и отсутствие очистки пользовательского ввода», - говорится в пояснениях разработчиков.

По словам Пеледа, внутри указанной функции содержится вызов командной строки exec.command, который создаёт символическую ссылку между расположением данных в томе узла и внутри пода.

«Это создаёт лазейку для злоумышленника: он получает возможность создавать постоянный том (PersistentVolume) со специально настроенным параметром пути в файле YAML, который откроет возможность для инъекции и запуска команды с помощью разделителя &&».

Патч заменяет небезопасный вызов другой функцией, выполняющей ту же задачу.

Роман Георгиев

Короткая ссылка