Docker-образы Alpine поставлялись с пустым паролем пользователя root
Исследователи безопасности из компании Cisco раскрыли сведения об уязвимости (CVE-2019-5021) в сборках дистрибутива Alpine для системы контейнерной изоляции Docker. Суть выявленной проблемы в том, что для пользователя root был задан по умолчанию пустой пароль без блокировки прямого входа под root. Напомним, что Alpine используется для формирования официальных образов от проекта Docker (раньше официальные сборки основывались Ubuntu, но потом были переведены на Alpine).
Проблема проявляется начиная со сборки Alpine Docker 3.3 и была вызвана регрессивным изменением, добавленным в 2015 году (до версии 3.3 в /etc/shadow использовалась строка «root:!::0:::::», а после из-за прекращения использования флага «-d» стала добавляться строка «root:::0:::::»). Проблема была изначально выявлена и исправлена в ноябре 2015 года, но в декабре по ошибке опять всплыла в сборочных файлах эксперментальной ветки, а затем была перенесена в стабильные сборки.
В сведениях об уязвимости указано, что проблема проявляется в том числе в последней ветке Alpine Docker 3.9. Разработчики Alpine в марте выпустили исправление и уязвимость не проявляется начиная со сборок 3.9.2, 3.8.4, 3.7.3 и 3.6.5, но остаётся в старых ветках 3.4.x и 3.5.x, поддержка которых уже прекращена. Кроме того, разработчики утверждают, что вектор для атаки сильно ограничен и требует наличия у атакующего доступа к той же инфраструктуре.