Im , Implementierung des NTP-Protokolls, das zur Synchronisierung der genauen Zeit in verschiedenen Linux-Distributionen verwendet wird, Schwachstelle (), die es ermöglicht, jede Datei im System zu überschreiben, wenn man als lokaler unprivilegierter Benutzer chrony Zugriff hat. Die Schwachstelle kann nur über den chrony-Benutzer ausgenutzt werden, was ihre Gefährlichkeit verringert. Dennoch gefährdet das Problem das Isolationsniveau in chrony und könnte ausgenutzt werden, wenn eine andere Schwachstelle im nach der Privilegienrücksetzung ausgeführten Code entdeckt wird.
Die Schwachstelle wird durch die unsichere Erstellung von PID-Dateien verursacht, die zu einem Zeitpunkt erstellt werden, als chrony noch keine Privilegien zurückgesetzt hat und mit Root-Rechten läuft. Dabei wird das Verzeichnis /run/chrony, in das die PID-Datei geschrieben wird, mit den Rechten 0750 über systemd-tmpfiles oder beim Start von chronyd unter dem Benutzer und der Gruppe „chrony“ erstellt. Daher, wenn man Zugriff auf den chrony-Benutzer hat, ist es möglich, die PID-Datei /run/chrony/chronyd.pid durch einen symbolischen Link zu ersetzen. Der symbolische Link kann auf jede Systemdatei verweisen, die zum Zeitpunkt des Starts von chronyd überschrieben wird.
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
Schwachstelle in der Version . Updates für die Behebung der Schwachstelle sind verfügbar für . Bei der Vorbereitung eines Updates für , und .
SUSE und openSUSE zur Problematik , da der symbolische Link für chrony direkt im Verzeichnis /run erstellt wird, ohne zusätzliche Unterverzeichnisse zu nutzen.
Quelle: opennet.ru
