Разработчики платформы с открытым исходным кодом Docker, упрощающей создание контейнеров и приложений на их основе, настоятельно рекомендуют пользователям устранить критическую уязвимость, затрагивающую некоторые версии ядра системы Docker Engine, клиент-серверного приложения, которое создает и запускает контейнеры. Эта уязвимость позволяет обходить плагины авторизации AuthZ и повышать привилегии помощью специально созданных запросов API.
В 2018 году была впервые обнаружена уязвимость Docker, которая в базе данных общеизвестных уязвимостей информационной безопасности известна под идентификационным номером CVE-2024-411104; ей дали оценку CVSS 10/10 по десятибалльной шкале открытого стандарта Common Vulnerability Scoring System. CVE-2024-41110, как пояснили в компании Docker, может создавать проблемы всем пользователям, применяющим для обработки запросов на доступ и ответов плагины AuthZ.
Эта уязвимость позволяет злоумышленникам обходить AuthZ. Дело в том, что стандартная модель авторизации Docker работает по принципу «все или ничего». В рамках этой модели любой пользователь, получивший доступ к управляющей объектами Docker службе Docker daemon, может формировать команды работы с контейнерами. Обходной путь создается запросом API с нулевым заголовком Content-Length. Такой «пустой» запрос Docker daemon перенаправляет плагину AuthZ, который, в свою очередь, способен неправильно его одобрить. В случае же непустого запроса с «телом» этого не происходит.
В январе 2019 года уязвимость авторизации устранили в Docker Engine v18.09.1, но это исправление не было учтено в Docker Engine v19.03 и более поздних версиях. Такую проблему выявили в апреле 2024 года, а соответствующие исправления выпустили 23 июля 2024 года.
Несмотря на то, что после первоначального исправления уязвимость могла использоваться в течение довольного длительного времени, эксплуатируемость этой ошибки остается на низком уровне, утверждают в Docker. В компании рекомендуют обновить все затронутые ошибками версии платформы Docker, а в тех случаях, когда по каким-либо причинам обновления не могут быть установлены, — отключить плагины AuthZ и разрешать доступ к API Docker только доверенным пользователям.