Kritische Sicherheitslücke: GnuTLS mit eigenem "goto fail"

4. März 2014, 15:26
80 Postings

Ähnlicher Fehler wie bei Apple ermöglicht Man-in-the-Middle-Attacken - Neue Version veröffentlicht

Als Apple vor kurzem eine kritische Sicherheitslücke in seinen Betriebssystemen iOS und OS X eingestehen musste, brach scharfe Kritik über das Unternehmen herein. Fällt der verursachende Fehler doch in die Kategorie "trivial". Auch für den konkreten Code-Stil in Kombination mit einer nur begrenzt zeitgemäßen goto-Anweisung gab es Spott von zahlreichen Sicherheitsexperten.

GnuTLS

Wie sich nun zeigt, ist Apple aber nicht das einzige Unternehmen, dem solch schwerwiegende Fehler an kritischer Stelle passieren. So ermöglichte bislang auch ein Fehler in der weit verbreiteten Open-Source-Bibliothek GnuTLS  Man-in-the-Middle-Attacken gegen verschlüsselte Verbindungen.

Ähnlichkeiten

Der Fehler erinnert insofern etwas an das Apple-Problem, da auch hier ein fehlerhaftes goto-Statement der Auslöser ist. Allerdings ist hier kein Zeilenduplikat das Problem sondern eine falsche Prüffunktion. Statt "goto fail" hieß es bisher bei einigen Teilprüfungen des Zertifikats  "goto cleanup" - mit der Konsequenz, dass dieses immer als korrekt erkannt wurde. Angreifer könnten dadurch ein falsches Zertifikat dermaßen gestalten, dass es die Prüfung ohne Fehler durchläuft.

Update

Parallel zur Veröffentlichung des Security Advisories hat das GnuTLS-Projekt auch neue Versionen der eigenen Software veröffentlicht, die das Problem beheben. GnuTLS 3.2.12 und 3.1.22 stehen seit kurzem in Form des Source Codes zum Download bereit. Entsprechende Updates sind ebenfalls bereits bei den meisten großen Distributionen eingetroffen. Aufgetaucht ist die Lücke übrigens im Rahmen eines Security Audits von Red Hat, in dessen Rahmen der Source Code gezielt auf Lücken untersucht wurde. (red, derStandard.at, 4.3.2014)

  • Ein Ausschnitt jenes Commits, der den Fehler bereinigt.
    grafik: derstandard.at

    Ein Ausschnitt jenes Commits, der den Fehler bereinigt.

Share if you care.