Selbstkritik: Wie man Sicherheitslücken nicht meldet

Ich suche immer mal wieder nach Sicherheitslücken in Netzwerken, Anwendungen und Internetseiten. Dabei muss man natürlich aufpassen sich stets im rechtlichen Rahmen zu bewegen und bei den Tests nichts zu (zer)stören.

Wer meine Posts hier verfolgt, der wird den ein oder anderen Eintrag über LoRaWAN und TheThinsNetwork bemerkt haben. Um die Abdeckung des Netzwerks zu messen gibt es den TTNmapper. Die gemessenen Daten sind normalerweise öffentlich einsehbar.

Da es aber auch Testszenarien gibt, ist es auch möglich seine Messung als Experiment zu kennzeichnen. Dazu kann man dann einen beliebigen Titel vergeben, der auf dieser Seite angezeigt wird.

Bis vor wenigen Tagen gab es dabei eine XSS Lücke, die es ermöglichte beliebige HTML Tags und JavaScripte über den Namen des Experiments einzuschleusen und auszuführen. Zunächst begann mein Test harmlos mit einem <b> Tag. Die Schrift wurde Fett und die Lücke war gefunden.

Nun wollte ich wissen, ob auch JavaScript eingeschleust werden kann. Dazu testete ich mit dem typischen Hello World Beispiel:

<script>alert("XSS");</script>

Es öffnete sich wie erwartet nun beim Aufruf der Seite ein PopUp mit dem gewählten Text. Was ich nicht bedacht hatte war, dass dieses PopUp nun jedem Besucher angezeigt wurde, da es in der Datenbank gespeichert war. Jeder Besucher erhielt also einen Hinweis auf das Problem. Nicht gut!

Glücklicherweise konnte ich den Betreiber innerhalb weniger Minuten per Email erreichen. Er nahm die Seite vorerst offline und behob das Problem sehr schnell. Dabei war es um Mitternacht. Gute Arbeit!

Er bedankte sich noch bei mir und meinte, dass die Lücke tatsächlich kritisch sei.

Dennoch hätte ich so nicht vorgehen dürfen. Eine persistente Änderung am HTML Text, der jedem Besucher auf die Lücke hinweist ist der falsche Weg. Als Proof-of-Concept hätte auch ein console.log gereicht:

<script>console.log("Proof-of-Concept");</script>

Damit hätte jeder, der in die Konsole sieht das Problem erkennen können. Der normale Besucher hat die Konsole aber nicht offen, und wird damit nicht auf das Problem hingewiesen.

In Zukunft werde ich also definitiv vorher besser über mögliche Folgen meiner Tests nachdenken müssen. Hier ist es der schnellen Reaktion des Entwicklers zu verdanken, dass die Lücke nicht ausgenutzt wurde. Normalerweise verfolge ich die Strategie des Responsible-Disclosure. Hierbei habe ich das nicht geschafft.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.