Login
Newsletter
Werbung

Do, 5. August 2004, 19:22

Software::Kernel

Kernelbug macht Speicher lesbar

Ein neu entdeckter Fehler im Kernel ermöglicht Angreifern den Zugriff auf sensible Daten im Kernelspeicher.

Die Ursache des Problems liegt in der mangelhaften Umwandlung von 32 Bit- in 64 Bit-Datentypen in manchen Teilen des Kernels. Konkret geht es hierbei um die interne Festhaltung der Position des Dateilese- und Schreibzeigers in Dateideskriptoren. Dieser Wert, der angibt, an welcher Position in der Datei die nächste Lese- oder Schreibaktion erfolgt, wird in manchen Teilen des Kernels als 32 Bit-Variable repräsentiert, während er in anderen Teilen 64-bittig ist. Durch Konvertierungsfehler kann die Variable einen negativen Wert annehmen.

Besonders betroffen sind Dateien, die sich im /proc-Verzeichnis befinden. Durchschnittlich geben die Dateien eine Seite des Kernelspeichers preis, was unter Linux meistens 4096 Bytes entspricht, in dem sich schlimmstenfalls sensible Daten wie Passwörter befinden. Besonders bemerkenswert tritt das Problem in der Funktion zum Lesen von MTRR-Informationen (Memory Type Range Register) auf, wodurch besonders die Datei /proc/mtrr anfällig für den vorhandenen Exploit ist. Durch den negativen Wert der Schreib- und Leseposition kann der Angreifer wichtige Fallunterscheidungen, die den Vorgang abbrechen würden, umgehen und gleich mehrere Seiten des Kernelspeichers begutachten, ohne spezielle Berechtigungen zu benötigen. Nähere Erklärungen und der Exploit befinden sich im Originaldokument der ISEC Security Research.

Der Fehler existiert in allen Originalkernels der Serie 2.4 und 2.6. Dass eine fehlerhafte Konvertierung zwischen 64 und 32 Bit die Ursache des Fehlers ist, bedeutet nicht, dass nur 64 Bit-Systeme vom Problem betroffen sind, da Datentypen dieser Größe beispielsweise auch auf i386 zur Verfügung stehen.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung