Разработчики Docker выпустили обновление для устранения критической уязвимости в некоторых версиях Docker Engine. Уязвимость позволяет злоумышленникам обойти плагины авторизации (AuthZ) при соблюдении ряда условий.
Изначально проблема была обнаружена и исправлена в Docker Engine 18.09.1, выпущенном еще в январе 2019 года. Однако по неизвестной причине это исправление не было перенесено в более поздние версии, в результате чего уязвимость проявилась вновь.
Снова эту проблему заметили лишь в апреле 2024 года. В результате на этой неделе были опять выпущены патчи для всех поддерживаемых версий Docker Engine.
То есть у злоумышленников было пять лет для эксплуатации этого бага, хотя доподлинно неизвестно, применялась ли уязвимость для фактических атак и получения несанкционированного доступа к инстансам Docker.
Теперь уязвимость отслеживается под идентификатором CVE-2024-41110 и оценивается в максимальные 10 баллов по шкале CVSS. Проблема позволяет злоумышленнику отправить специально подготовленный API-запрос с Content-Length равным 0, чтобы обманом вынудить демона Docker переслать его плагину AuthZ.
Так как при Content-Length равном 0 плагин AuthZ не может выполнить надлежащую проверку, это повлечет за собой риск одобрения запросов для несанкционированных действий, включая повышение привилегий.
CVE-2024-41110 затрагивает Docker Engine версий до 19.03.15, 20.10.27, 23.0.14, 24.0.9, 25.0.5, 26.0.2, 26.1.4, 27.0.3 и 27.1.0 и пользователей, применяющих плагины авторизации для контроля доступа.
Пользователи, не использующие такие плагины, а также пользователи Mirantis Container Runtime и коммерческих продуктов Docker не подтверждены уязвимости CVE-2024-41110, вне зависимости от версий.
Всем, которого затрагивает этот баг, рекомендуется как можно скорее перейти на версии 23.0.14 и 27.1.0, где проблема устранена.
Также сообщается, что последняя версия Docker Desktop (4.32.0) тоже оснащена уязвимой версией Docker Engine, но влияние проблемы ограничено, так как для эксплуатации требуется доступ к API Docker, и любое повышение привилегий ограничено виртуальной машиной. Ожидается, что грядущая версия Docker Desktop (4.33.0) решит эту проблему.