NSS: Die TLS-Lücke, die nicht hätte sein dürfen
Ein Google-Forscher hat eine triviale Lücke in Mozillas TLS-Bibliothek NSS entdeckt, trotz aller Vorkehrungen des Herstellers.

Der bei Googles Project Zero angestellte Sicherheitsforscher Tavis Ormandy hat eine Lücke (CVE-2021-43527) in Mozillas TLS-Bibliothek NSS entdeckt, wie er in dem Blog der Initiative schreibt. Anders als sonst, habe diese aber keinen besonders großen Angriffsvektor oder sei besonders komplex. Sie sei dagegen sehr trivial - trotz der zahlreichen auch technischen Sicherheitsvorkehrungen seitens Mozilla. Mit der Version 3.73.0 von NSS wird die Lücke behoben.
Konkret findet sich die Lücke in einer Union, die genutzt wird, um Signaturen zu speichern. Diese ist maximal 16 kBit groß. Ormandy fragt dazu: "Okay, aber was passiert, wenn Sie nur [...] eine Signatur erstellen, die größer ist?". Dies führt überraschenderweise zu einer Speicherlücke, denn letztlich wird die nicht vertrauenswürdige Signatur einfach in einen Buffer fester Größe kopiert und dieser läuft bei einer zu großen Signatur über.
Eigentlich sollten derartige simple Speicherfehler in solch einer sicherheitskritischen Anwendung nicht geschehen. Ormandy schreibt dazu jedoch: "Dies war kein Prozessfehler, der Anbieter hat alles richtig gemacht. Mozilla verfügt über ein ausgereiftes, erstklassiges Sicherheitsteam. Sie leisteten Pionierarbeit bei Bug Bounties, investierten in Speichersicherheit, Fuzzing und Testabdeckung."
Einfacher Fehler trotz Vorkehrungen
Weiter analysiert Ormandy, dass einige Annahmen innerhalb des Fuzzings dazu geführt haben, dass die Lücke nicht gefunden worden ist. So werden die Bestandteile von NSS nicht übergreifend getestet und es gibt eine feste Größenbeschränkung von Eingabeobjekten beim Fuzzing. Auch seien die für das Fuzzing genutzten Metriken irreführend, da der untersuchte Code zwar ausgiebig überprüft werde, aber eben von Fuzzern, die den Fehler selbst nie hätten auslösen können.
Ormandy schreibt dazu: "Dieses Problem zeigt, dass selbst extrem gut gewartetes C/C++ fatale, triviale Fehler haben kann". Eine im Firefox und Thunderbird genutzte Bibliothek zur Validierung habe immerhin Schlimmeres verhindert. Diese wird aber nicht außerhalb von Mozilla-Projekten genutzt, in denen NSS sonst noch zum Einsatz kommt.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Unzertrennlich möchten Sie damit sagen, ja?
Danke für die Demo / Übersetzung in Rust! Sehr erhellend!
Ich persönlich verbinde mit "Hersteller" die Firma hinter dem Produkt. Mozilla ist der...