Уязвимость в chrony

В 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, без применения дополнительных подкаталогов.

Источник: opennet.ru

Добавить комментарий