В , реализация на NTP протокол, използван за синхронизиране на точно време в различни дистрибуции на Linux, уязвимост (), позволяваща да се презапише всеки файл в системата с достъп до локален непривилегирован потребител 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
Уязвимостта в версията . Актуализациите на пакети с поправки за уязвимостта са налични за . В процеса на подготовка на актуализация за , и .
SUSE и openSUSE за проблема , тъй като символичната връзка за chrony се създава директно в каталога /run, без използването на допълнителни подкаталози.
Източник: opennet.ru
