Suse-Entwickler entdecken gravierenden Fehler in der Semantik der Linux-Dateisysteme

Wietse Venema, der Entwickler von Postfix weist in einem aktuellen Advisory auf der deutschen Postfix-Seite auf eine local-privilege-eskalation in Linux- und Sun-Dateisystemen hin. Weil sich jüngere Versionen nicht mehr an den geltenden POSIX-Standard halten, könne lokale Angreifer unter Umständen Daten an Files anderer Benutzer anhängen.

Das Problem besteht für alle neueren Linux- und Solaris-Varianten, laut Venema aber nicht *BSD, AIX, Mac OS X, HP-UX und andere Systeme, die entweder den POSIX oder den X/Open-Standard einhalten.

Betroffene Systeme erstellen Hardlinks, die wiederum auf Symlinks zeigen, nicht wirklich als Hard Links, sondern erstellen ohne Kommentar einen Symlink. Das kann es einem lokalen Angreifer erlauben, über Daten an Files anzuhängen, auf die Ihm der Besitzer ursprünglich kein Schreibrecht eingeräumt hat, zum Beispiel die Mailbox eines Postfix-Servers.

Sebastian Krahmer von Suse entdeckte das Verhalten, es kann von Linux-Usern (zum Beispiel auf Ubuntu 8 und Opensuse 11) mit wenigen Schritten nachvollzogen werden:

$ PATH=/bin:/usr/bin:$PATH
$ mkdir test
$ cd test
$ touch src
$ ln -s src dst1
$ ln dst1 dst2
$ ls -l

Auf betroffenen Systemen erscheinen im Test-Verzeichnis trotz der Eingabe von Ln ohne die Option “-s” zwei Symlinks:

$ ls -l
lrwxrwxrwx 2 user users 3 Mmm dd hh:mm dst1 -> src
lrwxrwxrwx 2 user users 3 Mmm dd hh:mm dst2 -> src
-rw-r--r-- 1 user users 0 Mmm dd hh:mm src

Richtig und POSIX-konform wäre laut Venema hier die sichere Erstellung eines echten Hardlinks:

$ ls -l
lrwxrwxrwx 2 user users 3 Mmm dd hh:mm dst1 -> src
-rw-r--r-- 2 user users 0 Mmm dd hh:mm dst2
-rw-r--r-- 1 user users 0 Mmm dd hh:mm src

Im Falle des Postfix-Mailservers könnte ein lokaler Angreifer Postfix dazu bringen, anstelle des Mailbox-Files Daten an eine andere Datei eines anderen Users anzuhängen, zum Beispiel dessen Mailbox. Läuft der Server mit Root-Rechten, ergibt sich daraus unter Umständen ein Angriffsvektor für einen lokalen Benutzer, unabhänig von Postfix. Trifft Postfix bei der Zustellung auf einen Hard Link, dann gibt es eine Fehlermeldung aus und verweigert die Zustellung, Symlinks sind dagegen zulässig.

Anwender sollten daher den auf der von Patrick Koetter und Ralf Hildebrandt betriebenen deutschen Postfix-Seite veröffentlichten Patch einspielen und die dortigen Anweisungen befolgen, vor allem wenn sie das Mailbox-Format mit dem lokalen Zustellagenten von Postfix (Local Delivery Agent oder Virtual Delivery Agent) verwenden. Postfix-Mailserver, auf denen Maildir oder ein lokaler IMAP-Server wie Cyrus oder Dovecot eingesetzt werden, sind nicht direkt betroffen. Venema stellt dabei mit einem Perl-Skript sicher, dass das Spoolerverzeichnis Root gehört und jeder User bereits über eine Mailbox-Datei verfügt. Alternativ können Mailserveradmins auch den bereitgestellten Quellcode in ihre Postfix-Version einpflegen.

Als universelle Gegenmassnahme, die auch weit über Postfix hinaus funktioniert, empfiehlt Venema: “Verbieten Sie Nicht-Root Benutzern das Erstellen von Hardlinks auf Objekte anderer User. Dieses Verhalten ist auf einigen Systemen konfigurierbar.”

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben