Jogging - Bild von Tomasz Woźniak auf unsplash.com

Schwachstelle auf onemillionrun.ch - Account Takeover

Um die Bevölkerung zu motivieren, sich auch während des Lockdowns sportlich zu betätigen, wurden mehrere Projekte ins Leben gerufen. Eines davon, der “OneMillionRun”, fand am letzten Maiwochenende statt, mit folgendem Ziel: Gemeinsam 1'000'000 Kilometer zu Fuss zurücklegen. Die geleisteten Kilometer mussten natürlich online auf www.onemillionrun.ch im persönlichen Konto eingetragen werden.

Die Kontoerstellung lief ziemlich simpel ab: Name, Adresse, Geschlecht, Geburtsdatum und Mail angeben und abschicken. Ein Passwort wird nicht benötigt, die Anmeldung erfolgt über einen Link mit einer zufällig generierten ID (eine sogenannte UUID). Ruft man den Link auf, der per Mail zugestellt wurde, lassen sich Kilometer eintragen sowie die persönlichen Daten anzeigen und löschen.

Screenshot der Account-Seite
Screenshot der Account-Seite. In der URL ist die UUID markiert.

Die UUID dient hier also als Sicherheitselement. Jeder der diese kennt, kann auf den Account zugreifen. Dies ist generell sehr viel sicherer als Passwörter, da sich UUIDs nicht erraten / bruteforcen lassen.

Der Fehler

Auf onemillionrun.ch gibt es eine Seite mit allen Teilnehmern, die einer solchen Veröffentlichung zugestimmt haben (https://www.onemillionrun.ch/result). Auf der Seite wird nur der Name, der Teamname, die Kilometerzahl / Zeit und der Wohnort angegeben. Bei der Analyse der Seite ist mir jedoch aufgefallen, dass im Quelltext die UUID der Nutzer angegeben ist.

Die UUID aller öffentlichen Teilnehmer lässt sich im Quelltext finden
Die UUID aller öffentlichen Teilnehmer lässt sich im Quelltext finden
Nach einer Überprüfung mit einem Testkonto stellte sich heraus, dass die UUID tatsächlich dazu verwendet werden kann, um auf einen Account zuzugreifen.

Es wäre also theoretisch möglich gewesen, alle UUIDs automatisiert zu sammeln und anschliessend alle persönlichen Daten der Nutzer herunterzuladen.

Meldung & Behebung

Nachdem feststand dass tatsächlich eine Schwachstelle besteht, die zudem vermutlich rund 50'000 Schweizerinnen und Schweizer gefährdet, suchte ich nach Kontaktdaten der Verantwortlichen. Da ich die Schwachstelle am Freitagabend fand, bestand die Gefahr, dass ich niemanden mehr erreichen konnte. Auf der Seite war jedoch die Handynummer des Mediensprechers angegeben. Mein Anruf wurde nicht entgegengenommen - 20 Minuten später erhielt ich jedoch den Rückruf. Der Mediensprecher leitete die Information weiter und 10 Minuten später erhielt ich einen Anruf eines Entwicklers von Datasport, der die Schwachstelle bestätigte.

Am nächsten Tag (Samstag), war die Schwachstelle - weniger als 24h nach Meldung - bereits behoben.

Die UUID wurde durch eine andere ID ersetzt
Die UUID wurde durch eine andere ID ersetzt

Als erste Massnahme wurde die UUID in der Teilnehmerauflistung durch eine andere ID ersetzt. Eine Analyse der Logdateien hat zudem ergeben, dass der Fehler glücklicherweise nicht ausgenutzt wurde. Da jedoch nicht ausgeschlossen werden konnte, dass die UUIDs bereits heruntergeladen wurden, wurde noch eine weitere Sicherheitsfunktion eingebaut:

Als weitere Sicherheitsfunktion wurde noch die Abfrage der E-Mail-Adresse eingebaut
Als weitere Sicherheitsfunktion wurde noch die Abfrage der E-Mail-Adresse eingebaut

Diese stellt sicher, dass man nur auf den Account zugreifen kann, wenn man die E-Mail-Adresse kennt.

Fazit

Diese Schwachstelle zeigt sehr gut, dass sehr kleine Fehler grosse Auswirkungen haben können. Doch glücklicherweise wurde die Schwachstelle nicht ausgenutzt. Vielen Dank an dem Punkt an den / die Entwickler und alle anderen Beteiligten. Es ist äusserst selten, dass eine Schwachstelle so einfach gemeldet werden kann und an einem Wochenende / über Nacht behoben wird.

Timeline

  • 29.05.2020, 17:30: Schwachstelle entdeckt
  • 29.05.2020, 18:00: Anruf an Mediensprecher - nicht verfügbar
  • 29.05.2020, 18:20: Rückruf von Mediensprecher - Situation erklärt
  • 29.05.2020, 18:30: Anruf von Entwickler
  • 29.05.2020 - 30.05.2020: Schwachstelle behoben

News und andere interessante Sachen.

Blog.

Auf unserem Blog finden Sie interessante Artikel über von uns gefundene Sicherheitslücken, aktuelle Themen, Neuigkeiten und weiteres

Blog Beitragsbild

Schwachstelle auf onemillionrun.ch - Account Takeover

Um die Bevölkerung zu motivieren, sich auch während des Lockdowns sportlich zu betätigen, wurden mehrere Projekte ins Leben gerufen. Eines davon, der “OneMillionRun”, fand am letzten Maiwochenende statt, mit folgendem Ziel: Gemeinsam 1'000'000 Kilometer zu Fuss zurücklegen. Die geleisteten Kilometer mussten natürlich online auf www.onemillionrun.ch im persönlichen Konto eingetragen werden.

Weiterlesen
Blog Beitragsbild

Schwachstelle in der myCloud - CORS-Fehler erklärt

Info! Bei diesem Artikel handelt es sich um ein Write-Up einer gefundenen Schwachstelle. Anhand dieser wird hier die Gefahr von sogenannten CORS-Fehlkonfigurationen erklärt. Schwachstellen gibt es in jedem System, weshalb anzumerken ist, dass myCloud / Swisscom im Allgemeinen nicht als unsicher abgestempelt werden sollte. Im Gegenteil: Durch das Bug Bounty Programm konnte der Fehler behoben werden.
Dieser Artikel beschreibt eine Schwachstelle, die sich auf mycloud.ch befand und es unter gewissen Umständen ermöglichte, Dateien von fremden Accounts herunterzuladen und neue Dateien hochzuladen. Die Schwachstelle wurde durch die Swisscom im Rahmen des Bug Bounty Programmes der Swisscom behoben (siehe Timeline).

Weiterlesen
Blog Beitragsbild

Sicherheitslücke bei Digitec Galaxus [Information Disclosure]

Auf den Onlineshops der Digitec Galaxus AG befand sich eine Schwachstelle, die es ermöglichte, den vollen Namen eines beliebigen Kunden abzufragen. Benötigt wurde dazu nur die User-ID, die im Link zum jeweiligen Benutzerprofil zu finden ist. In diesem Beitrag schildere ich die Details zu dieser Lücke.

Weiterlesen