/ Security / Speicherleck: Cloudflare verteilt private Daten übers Internet

Speicherleck: Cloudflare verteilt private Daten übers Internet

126366-135589-i_rc.jpg
Moritz Rosenfeld an Februar 27, 2017 - 6:35 am in Security

Am vergangenen Freitag sendete der Google-Sicherheitsexperte Tavis Ormandy einen Tweet, in dem er dringend nach einem Security-Kontakt bei Cloudflare fragte. Der Hintergrund dieses Tweets ist dramatisch: Ein Bug bei Cloudflare führte dazu, dass sehr sensible Daten von unzähligen Nutzern im Internet verteilt wurden.

Cloudflare dürfte zwar nur technikaffinen Nutzern bekannt sein, das Content-Delivery-Netzwerk wird jedoch von zahlreichen Webseiten genutzt, darunter viele bekannte Dienste wie Uber, OkCupid, StackOverflow und Medium.

Cloudflare bietet verschiedene Features an, die Änderungen an den Kundenwebseiten vornehmen. Darunter beispielsweise eine Funktion, die automatisch Mailadressen via Javascript unlesbar macht, um Spammen zu erschweren, oder eine Möglichkeit, automatisch HTTP-URLs, die via HTTPS verfügbar sind, umzuschreiben. Für derartige Zwecke nutzt Cloudflare Module im Webserver Nginx, die den HTML-Code einlesen und umschreiben.

C-Parser liest über Puffer-Grenzen hinweg

Der betroffene Parser von Cloudflare war in Ragel geschrieben. Ragel wiederum erzeugt C-Code.

Der Bug selbst war ein sehr typischer C-Bug: Der Code liest in bestimmten Fällen über das Ende eines Speicherbereichs hinweg, da ein Check übersprungen werden kann. Das war der Fall, wenn ein unvollständiger HTML-Tag in einer Webseite auftauchte. Ormandy schreibt, dass er sich schwer tat, den Bug nicht Cloudbleed zu nennen – eine Anspielung auf den Heartbleed-Bug in OpenSSL, der eine sehr ähnliche Ursache hatte.

Der eingelesene Speicher, der nun alles Mögliche enthalten kann – auch Daten von anderen Webseiten – wurde mit den HTTP-Antworten des Servers verschickt. Aus dem Bericht von Tavis Ormandy geht hervor, dass darunter wohl sehr sensible Daten waren, etwa private Nachrichten von Nutzern auf Datingbörsen, Chatnachrichten und Hotelbuchungen. Cloudflare schreibt jedoch, dass HTTPS-Zertifikate nicht betroffen sind, da diese in einem anderen Speicherbereich abgelegt waren.

Der Bug befand sich laut Cloudflare schon seit vielen Jahren in dem Code, jedoch trat der Bug lange Zeit nicht auf. Der Grund dafür ist ironischerweise ein neuer Parser, der eingeführt wurde, weil Cloudflare den alten Ragel-Code eigentlich ablösen will. Der neue Parser hatte zwar keinen Bug, aber durch seine Einführung änderte sich die Art und Weise, wie Speicherbereiche an den alten Parser weitergegeben wurden. Daher tritt der Bug nur auf, wenn der alte und der neue Parser gleichzeitig genutzt werden.

Read more on: Source

Kommentare sind deaktiviert