В chrony, реализации протокола NTP, применяемой для синхронизации точного времени в большинстве дистрибутивов Linux, выявлена уязвимость (CVE-2020-14367), позволяющая перезаписать любой файл в системе, имея доступ к локальному непривилегированному пользователю chrony. Уязвимость может быть эксплуатирована только через пользователя chrony, что снижает её опасность. Тем не менее, проблема компрометирует уровень изоляции в chrony и может использоваться в случае выявление другой уязвимости в коде, выполняемом после сброса привилегий.
Уязвимость вызвана небезопасным созданием pid-файла, который создавался на этапе, когда chrony ещё не сбросил привилегии и выполняется с правами root. При этом каталог /run/chrony, в который записывается pid-файл, создавался с правами 0750 через systemd-tmpfiles или при запуске chronyd в привязке к пользователю и группе «chrony». Таким образом, при наличии доступа к пользователю chrony имеется возможность замены pid-файла /run/chrony/chronyd.pid на символическую ссылку. Символическая ссылка может указывать на любой системный файл, который будет переписан в момент запуска chronyd.
root# systemctl stop chronyd.service root# sudo -u chrony /bin/bash chrony$ cd /run/chrony chrony$ ln -s /etc/shadow chronyd.pid chrony$ exit root# /usr/sbin/chronyd -n ^C # вместо содержимого /etc/shadow будет сохранён идентификатор процесса chronyd root# cat /etc/shadow 15287
Уязвимость устранена в выпуске chrony 3.5.1. Обновления пакетов с устранением уязвимости доступны для Fedora. В процессе подготовки обновления для RHEL, Debian и Ubuntu. SUSE и openSUSE проблеме не подвержены, так как символическая ссылка для chrony создаётся непосредственно в каталоге /run, без применения дополнительных подкаталогов.
Источник: https://www.opennet.ru/opennews/art.shtml?num=53580