Red Hat: Symlink-Attacke durch Sudo-Paket

Eine Sicherheitslücke im Sudo-Paket von Red Hat hat zur Folge, dass ein lokaler Angreifer Symlink-Attacken auf anfälligen Systemen ausführen kann.

Das Problem tritt im Post-Uninstall-Skript auf des RPM-Pakets auf, welches temporäre Dateien unsicher erzeugt. Dies ist häufig die Ursache für Symlink-Schwachstellen. Der Angreifer muss lediglich einen Symlink mit dem Namen der zu schreibenden temporären Datei anlegen. Beim nächsten Schreiben der temporären Datei wird dann dieser Schreibzugriff auf die vom Angreifer gewünschte Datei mit Hilfe des Symlinks umgeleitet.

Im Falle des Skripts für das Sudo-RPM sieht der fehlerhafte Programmcode wie folgt aus:

# Remove the "sudoers:" line from nsswitch.conf if it's not modified
if grep -q "^sudoers: files ldap$" ""/etc/nsswitch.conf""; then rm -f ""/var/tmp/nsswitch.conf.bak"" && \ touch ""/var/tmp/nsswitch.conf.bak"" && \ grep -v "^sudoers: files ldap$" ""/etc/nsswitch.conf"" > ""/var/tmp/nsswitch.conf.bak"" && \ mv -f ""/var/tmp/nsswitch.conf.bak"" ""/etc/nsswitch.conf""
fi

In der Folge dieser Anweisungen kann es zu einer Race Condition zwischen dem Löschen (via “rm -f”) und Wiedererzeugen (via “touch”) der temporären Datei “/var/tmp/nsswitch.conf.bak” kommen. Der Angreifer muss für die Attacke den Moment erwischen, nachdem “rm -f /var/tmp/nsswitch.conf.bak” ausgeführt wurde, aber bevor der Prozess via “touch /var/tmp/nsswitch.conf.bak” die Datei wieder erzeugt. In diesem kurzen Moment kann er dann einen Symlink mit

ln -s Datei /var/tmp/nsswitch.conf.bak

auf Datei erzeugen. Alle weiteren Datei-Operationen des Skripts werden dann von “/var/tmp/nsswitch.conf.bak” auf Datei umgeleitet. Hierdurch kann der Angreifer diese manipulieren.

Nach oben