D-Bus: Denial-of-Service-Attacke möglich

Eine Sicherheitslücke in der Bibliothek Libdbus hat zur Folge, dass ein lokaler Angreifer das System zum Absturz bringen kann. Anfällig für diese Schwachstelle sind nur Systeme der Architektur x86_64.

Der Programmierfehler befindet sich in der Funktion “_dbus_printf_string_upper_bound()”. Dort kommt es zu Problemen beim Verarbeiten einer “va_list”. Der “va_list”-Mechanismus kommt immer dann zum Einsatz, wenn Funktionen mit verschiedenen Parametern benötigt werden. So kann man beispielsweise eine eigene “printf()”-Funktion wie folgt implementieren:

void my_printf(const char *fmt, ...)
{ va_list l; va_start(l, fmt); vprintf(fmt, l); flush(stdout); va_end(l);
}

Die Funktion “_dbus_printf_string_upper_bound()” verwendet “va_list” mehr als ein Mal, was nicht portabel ist. Beispielsweise funktioniert dies unter x86-Linux, aber nicht unter Linux auf x86_64.

Diese Schwachstelle wurde nun korrigiert indem man einfach eine Kopie der “va_list”-Variablen angelegt hat:

va_list args_copy;
DBUS_VA_COPY (args_copy, args);
len = vsnprintf (static_buf, bufsize, format, args_copy);
va_end(args_copy);

Damit ist der Fehler korrigiert und die Attacke nicht mehr möglich.

Betroffen sind die Versionen 1.4.16 bis 1.4.26 und 1.5.8 bis 1.6.12.

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