11.06.2012 12:15
Alert! MySQL-Datenbank-Zugang auch ohne Passwort
Die Datenbankserver MySQL und MariaDB akzeptieren in bestimmten Konfigurationen jedes Passwort – wenn man es nur lange genug probiert. Die Erfolgswahrscheinlichkeit liegt bei 1 aus 256, wie der MariaDB-Sicherheitskoordinator Sergei Golubchik auf der Mailingliste oss-sec bekanntgegeben hat.
Da mehrere hundert Versuche pro Sekunde möglich sind, kann ein Angreifer innerhalb kürzester Zeit die Kontrolle über verwundbare Installationen übernehmen. Er muss zwar einen gültigen Benutzernamen kennen, die Wahrscheinlichkeit, dass ein "root" existiert, ist jedoch hoch.
Die Datenbankserver vergleicht bei der Anmeldung den gespeicherten Hash-Wert mit dem des gerade eingegebenen Passworts. Durch eine implizite Typumwandlung von einem Integer zu einem vorzeichenbehafteten Character kann das ergeben, dass die Werte gleich wären – selbst wenn memcmp() einen Wert ungleich 0 zurück liefert. Dies tritt auf, wenn der Rückgabewert außerhalb des Intervalls zwischen -128 und 127 liegt.
Laut Golubchik sind theoretisch alle MySQL- und MariaDB-Versionen bis einschließlich 5.1.61, 5.2.11, 5.3.5 und 5.5.22 verwundbar – allerdings nur, wenn sie mit bestimmten Optionen kompiliert wurden; etwa mit der SSE-optimierte memcmp-Funktion der glibc. Nach bisherigem Kenntnisstand sind die von den Herstellern angebotenen Binaries nicht verwundbar. Ob die mit Distributionen ausgelieferten Versionen betroffen sind, ist noch unklar.
Wer testen möchte, ob die eigene Installation verwundbar ist, kann versuchen, den Fehler etwa mit folgendem Einzeiler zu provozieren:
$ for i in `seq 1 1000`; do mysql -u root --password=bad -h 127.0.0.1 2>/dev/null; done
Meldet sich daraufhin die Kommandozeile des Datenbankservers (etwa mit mysql>), sollte man schleunigst handeln. Abhilfe schafft ein Update auf die MySQL-Versionen 5.1.62, 5.2.12, 5.3.6 und 5.5.23 respektive MariaDB 5.1.63, 5.5.24 und 5.6.6. In dem oben verlinkten Advisory findet man zudem die passenden Patches. Nach dem Update prüfen die Datenbankserver den von memcmp() zurückgelieferten Wert zusätzlich durch eine Funktion test().
Update 11.6.2010, 15:30: Erklärung der Fehlerursache geringfügig korrigiert und die Empfehlung zum Selbsttest geändert, da dieser auch bei anfälligen Systemen fehlschlagen kann.
(rei)
Unsere Entdeckung, dass via Skype verschickte URLs von Microsoft besucht werden, hat für einigen Aufruhr gesorgt. Mittlerweile liegen etwas mehr Informationen dazu auf dem Tisch.
Die aktuelle BKA-Trojaner sperrt nicht nur den Rechner, sondern legt auch Bilder mit Kinderpornografie auf dem System ab. Mit Desinfec't kann man diesen Unrat aufspüren und beseitigen.
Der Krypto-Experte Karsten Nohl kritisiert die Absenkung des Schutzniveaus für Steuer-, Sozial- und Gerichtsdaten im Rahmen der gesetzlichen Anpassungen für De-Mail.
Wer verhindern will, dass Nutzer auf fremde Kalender zugreifen oder eigenen PHP-Code in den Server einschleusen, sollte baldmöglichst auf eine der aktuellen Versionen umsteigen.
Die Mozilla-Entwickler haben zahlreiche Sicherheitslöcher in Firefox und Thunderbird gestopft. Durch eine kann ein Angreifer, der bereits einen Fuß in der Tür hat, an Systemrechte gelangen.