Устраненная ошибка внедрения команд в Kubernetes может быть использована удаленным злоумышленником для выполнения кода с привилегиями SYSTEM на всех конечных точках Windows в кластере и, таким образом, полного захвата этих систем, утверждает исследователь Akamai Томер Пелед.
Пелед обнаружил уязвимость, отслеживаемую как CVE-2024-9042, во время проведения исследования для презентации на прошлогоднем мероприятии DEF CON infosec о другой уязвимости, связанной с Kubernetes, включающей внедрение команд в sidecar-проекте платформы контейнеров с открытым исходным кодом git-sync.
Последняя уязвимость получила средний уровень серьезности Оценка 5,9 из 10, уязвимость затрагивает версии Kubernetes до 1.32.1 с включенными бета-функциями.
Кроме того, для эксплуатации CVE-2024-9042 кластер Kubernetes должен работать не только на конечных точках Windows — уязвимость не затрагивает другие ОС — он должен быть настроен на выполнение запроса журнала. Это новый механизм бета-уровня для извлечения системного статуса удаленных машин с помощью интерфейса командной строки или веб-API через такой инструмент, как Curl.
Как объяснил Пелед:
Например, пользователь может ввести следующую команду, чтобы запросить статус службы kubelet на удаленном узле:
kubectl get —raw «/api/v1/nodes/node-1.example/proxy/logs/?query=kubelet»
Уязвимость позволяет злоумышленнику, который может отправить такой запрос на узел, внедрять команды в эту систему с высокими привилегиями через параметр шаблона в запросе. Log Query недостаточно проверяет и дезинфицирует этот параметр, который, если его тщательно отформатировать, будет выполнен на этом узле Windows.
Peled, который поделился эксплойтом-проверкой концепции в форме вызова Curl и предоставил здесь советы и дополнительные подробности, предлагает отдать приоритет исправлению этой ошибки.
Согласно рекомендациям по безопасности проекта Kubernetes, в которых перечислены версии, до которых необходимо обновиться, пользователи могут определить, была ли использована эта уязвимость, изучив журналы аудита своего кластера и выполнив поиск запросов журналов с подозрительными входными данными.
Однако анализ Пеледа ставит под сомнение, кто именно действительно подвержен риску атаки. Маловероятно, что будет много развертываний, работающих на узлах Windows Kubernetes с включенными бета-функциями ведения журнала, поэтому эта ошибка скорее интересна как урок безопасного кодирования, чем ужасает.
Он подчеркивает, что уязвимость затрагивает только узлы Kubernetes Windows, работающие на бета-версии программного обеспечения для управления. Но затем добавляет: «Поскольку проблема кроется в исходном коде, эта угроза останется активной, и ее эксплуатация, вероятно, возрастет — вот почему мы настоятельно рекомендуем исправить ваш кластер, даже если в нем нет узлов Windows».
Пелед сообщил The Register Akamai не видел никаких признаков активной эксплуатации. Он также объяснил свое заявление об ожидаемом росте эксплуатации следующим образом:
«Хотя для того, чтобы эксплойт заработал, было сделано несколько шагов, создание полезной нагрузки не требует больших технических знаний», — сказал он. «Мы ожидаем, что эксплуатация увеличится из-за простоты создания полезной нагрузки, общеизвестности с момента раскрытия информации и серьезности последствий для компаний, которые используют эту функцию».
Kubernetes, со своей стороны, отметил уязвимость как исправленную, и сопровождающий проекта подчеркнул, что The Register она действительно ограничена узлами Windows и больше не представляет активной угрозы.
«CVE-2024-9042 затрагивает только сборки Kubernetes для ОС Windows», — сказал совет директоров K8s. «Уязвимая логика не была скомпилирована в сборки Kubernetes, используемые в Linux для уязвимых версий, и хосты Linux, работающие под управлением Kubernetes, не затронуты». ®