Linux-администратор и основатель сервиса SSLMate Эндрю Эйер (Andrew Ayer) опубликовал в своём блоге заметку, как с помощью консольной команды из 48 символов привести systemd в нерабочее состояние.

Эндрю обнаружил «поразительно банальный баг» в init-системе systemd, появившийся там более двух лет назад (в версии systemd 209). Если через systemd-notify отправить пустое (из 0 символов) сообщение в UNIX-сокет /run/systemd/notify, доступный для всех пользователей, то systemd получит сообщение и не сможет выполнить проверку на его длину. Результат — прав любого локального Linux-пользователя достаточно для отказа от обслуживания критичного системного сервиса.

Сама команда выглядит следующим образом:

NOTIFY_SOCKET=/run/systemd/notify systemd-notify «»

Некоторые энтузиасты отмечают, что для реализации задуманного им потребовалось обернуть её в бесконечный цикл (while true). Уязвимость уже устранена (#4234 в GitHub) — пропатченная версия пакета systemd для Debian, например, получила версию 231-9, но пока имеет статус нестабильной.

Дэвид Тимоти Штраусс (David Timothy Strauss), технический директор Pantheon, отметил, что критика Эйера является преувеличенной, а описанная им уязвимость — «незначительная проблема в безопасности». По его уверениям, эта ошибка не «рушит» systemd, а приводит её в «нестабильное состояние»: «Некоторые службы, которые пытаются обратиться к systemd, в ответ получат таймаут в течение 30 секунд (по умолчанию), если systemd недоступна».

Рич Фелкер (Rich Felker), автор Linux-библиотеки musl, отмечает, что обнаруженная проблема не столько проблема безопасности, сколько тревожный звонок для нераздельной архитектуры systemd: «Systemd не создана для того, чтобы её разбивали на меньшие части, которые могут безопасно падать и восстанавливаться — ни с точки зрения безопасности, ни с точки зрения надёжности. У вас один большой монолитный процесс: если какой-то его компонент ломается, рушится всё остальное. Это большая проблема в архитектуре, на которую Эйер пролил свет. Это не большая уязвимость в безопасности, а брешь в архитектуре системной разработки».

Постоянная ссылка к новости: http://www.nixp.ru/news/13795.html.