În , implementarea protocolului NTP, folosit pentru sincronizarea timpului exact în diverse distribuții Linux, vulnerabilitate (), permițând scrierea oricărui fișier din sistem, având acces la un utilizator local fără privilegii chrony. Vulnerabilitatea poate fi exploatată doar prin intermediul utilizatorului chrony, ceea ce îi reduce periculozitatea. Cu toate acestea, problema compromite nivelul de izolare în chrony și poate fi folosită în cazul identificării unei alte vulnerabilități în codul executat după resetarea privilegiilor.
Vulnerabilitatea este cauzată de crearea nesigură a fișierului pid, care era creat în etapa în care chrony nu a resetat încă privilegiile și rulează cu drepturi root. În acest sens, directorul /run/chrony, în care este scris fișierul pid, era creat cu drepturi 0750 prin systemd-tmpfiles sau la pornirea chronyd legat de utilizatorul și grupul „chrony”. Astfel, având acces la utilizatorul chrony, există posibilitatea înlocuirii fișierului pid /run/chrony/chronyd.pid cu un link simbolic. Linkul simbolic poate indica către orice fișier de sistem, care va fi rescris în momentul pornirii 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
Vulnerabilitatea în versiunea . Actualizările pachetelor pentru remedierea vulnerabilității sunt disponibile pentru . În procesul de pregătire a actualizării pentru , și .
SUSE și openSUSE problema , deoarece linkul simbolic pentru chrony este creat direct în directorul /run, fără utilizarea de subdirectoare suplimentare.
Sursa: opennet.ro
