Root-Rechte über Lücken im Loader von Solaris
Sun schließt mit einem Update zwei Lücken, die sich eigentlich nur in Kombination miteinander ausnutzen lassen.
- Daniel Bachfeld
Sun will mit einem Update zwei vom Sicherheitsdienstleister iDefense aufgedeckte Lücken schließen. Beide finden sich im dynamischen Linker/Loader ld.so und lassen sich eigentlich nur in Kombination miteinander missbrauchen. So nutzt ld.so unter anderem die Umgebungsvariable $LANG, um die zur Sprache passenden Fehlermeldungen auszugeben. Da $LANG aber vom Nutzer vorgegeben werden kann, ist es etwa durch Directory Travering möglich, den Aufruf auf eigene Dateien umzubiegen. Dazu genügt es, dass der Anwender $LANG etwa auf ../../../../../home/user setzt.
So lassen sich beliebige Format-Strings laut iDefense an verwundbare Print- und Formatierungfunktionen in ld.so übergeben. Hier kommt die zweite Lücke in ld.so ins Spiel: ein Buffer Overflow in der Formatierungsfunktion doprf, über die sich Code auf den Stack schreiben und mit den Rechten von ld.so, also Root-Rechten, ausführen lässt. Interessanterweise tritt der Fehler nur bei nicht privilegierten Anwendern auf, ist der Anwender Root, wird diese Funktion nicht benutzt. Betroffen sind laut Sun Solaris 8, 9 und 10 auf SPARC und x86.
Siehe dazu auch:
- Security Vulnerabilities in Solaris ld.so.1(1) may Lead to Execution of Arbitrary Code with Elevated Privileges, Fehlerbericht von Sun
- Sun Microsystems Solaris ld.so 'doprf()' Buffer Overflow Vulnerability, Fehlerbericht von iDefense
- Sun Microsystems Solaris ld.so Directory Traversal Vulnerability, Fehlerbericht von iDefense
(dab)