Fall 02 — imo Messenger

Der Link, der
dich verrät.

Du sagst, du bist in New York. Doch ein einziger Link im Chat genügt, und imo verrät deine echte IP-Adresse — und damit die Stadt, in der du wirklich bist. Du öffnest den Link nie. Kein Antippen, kein Server. Über 500 Millionen Installationen.

Von Abbas Hoseiny· Unabhängige Sicherheitsforschung· Hersteller: PageBites, Inc.

Eine Link-Vorschau wirkt harmlos — eine kleine Karte unter einer Webadresse. Doch irgendwer musste diese Seite abrufen, um sie zu bauen, und für deine Privatsphäre entscheidet eine Frage alles: Welches Gerät hat abgerufen? Das ist Mias Abend zu Hause, und imo hat sie auf die schlechteste denkbare Weise beantwortet.

Mia liest auf dem Sofa eine Nachricht und antwortet, dass sie verreist ist
Hey Mia, treffen wir uns heute?
Tut mir leid, ich bin diese Woche in New York.
Abb. 1 — die Behauptung

Mia ist zu Hause in Berlin, eingekuschelt auf dem Sofa. Als Jonas sich treffen will, mag sie nicht — also sagt sie, sie sei verreist: „Ich bin diese Woche in New York.“

Mia sieht einen Link, ohne ihn zu öffnen; die automatische Vorschau erzeugt einen Eintrag im entfernten Anfrageprotokoll webhook.site/aXk9 nie angetippt
Abb. 2 — der stille Abruf

Jonas schickt einen kostenlosen webhook.site-Link. Mia sieht ihn in ihrem Chat, tippt ihn aber nie an, und schon das genügt. imo ruft ihn von selbst von ihrem Handy ab, und ihre echte IP schlüpft zur Tür hinaus. Kein Antippen, kein Server, keine Schadsoftware.

Jonas betrachtet den Anfrageeintrag neben einer groben Stadtkarte ohne genauen Standort
New York?
Sie ist in Berlin.
Abb. 3 — die Karte sagt etwas anderes

Auf Jonas’ Schirm löst sich diese IP zu einer Stadt auf. Nicht New York, sondern Berlin. Genau da, wo Mia gerade sitzt.

Mia sagte
New York
vs
Mias Handy
Berlin, DE
aus einem einzigen Chat-Link
Mia blickt beunruhigt auf ihr Handy; eine protokollierte Anfrage lässt auf ihre Stadt schließen
Du bist in Berlin.
Woher weißt du, wo ich bin?
Abb. 4 — der Teil, der dich beunruhigen sollte

Mia hat ihren Ort nie geteilt. Sie hat eine Nachricht gesehen, nichts angetippt. Und doch steht er da. Das Beunruhigende ist nicht die kleine Ausrede, sondern dass sie nie die Wahl hatte. Jeder, mit dem sie chattet, hätte das tun können.

Warum es wichtig ist

Ein Ort, den du nie teilen wolltest.

Eine IP-Adresse ist nicht bloß eine Zahl. Sie zeigt auf deine Stadt, dein Netz, deine ungefähre Position — genug, um zu bestätigen, dass du zu Hause bist, um zu erfahren, wo du wirklich bist, oder um zu verfolgen, wohin du dich bewegst. Hier kostet es den Absender nichts: ein kostenloser Link und ein Messenger, der für dich antwortet.

Signal, WhatsApp und iMessage vermeiden das, indem sie Vorschauen auf einem Server oder nur auf dem Gerät des Absenders abrufen. imo ruft vom Empfänger ab — der einen Person, die den Link des Angreifers niemals berühren sollte.

Technischer Bericht

imo Messenger — Funde & Analyse

PoC & Reproduktion auf GitHub ↗

Zusammenfassung & Schweregrad

imo Messenger (PageBites, Inc.) wurde auf Android, iOS, macOS und Windows getestet. Zwei Funde werden hier veröffentlicht. Eine dritte Beobachtung — der gefälschte Facebook-User-Agent — ist als Teil von F-PREVIEW dokumentiert und nicht als eigenständiges Problem, denn für sich genommen ist sie ein Verhalten, keine Schwachstelle.

IDFundCWECVSS 3.1Schweregrad
F-PREVIEWZero-Click-Leak von IP/Metadaten über die Link-Vorschau200/3194.3Mittel
F-STORAGEZugangsdaten im Klartext3126.2Mittel
F-UAAnfrage gibt sich als facebookexternalhit aus (in F-PREVIEW eingefaltet)451—Kontext
F-PREVIEW · CWE-200 / CWE-319

Zero-Click-Leak von IP & Metadaten über die Link-Vorschau

Mittel · CVSS 4.3

Beschreibung

Beim Empfang einer Chat-Nachricht mit einer URL führt der Client des Empfängers ein HTTP-GET auf diese URL aus, um eine Link-Vorschau zu bauen. Der Abruf geht vom Gerät des Empfängers aus und legt dessen echte IP-Adresse, User-Agent und Online-Status gegenüber demjenigen offen, der die URL kontrolliert. Kein Opt-out, kein Caching (der Abruf wiederholt sich bei jedem Öffnen des Chats), und die Anfrage trägt den User-Agent facebookexternalhit/1.1 Facebot Twitterbot/1.0. Ein kostenloser Protokoll-Dienst wie webhook.site genügt — der Angreifer braucht keine eigene Infrastruktur.

Anfrage-Protokoll hinter dem Link
$ GET /t/aXk9 HTTP/1.1 Cf-Connecting-IP: 91.64.xx.xx ← echte IP des Empfängers └─ geolokalisiert: Berlin, DE User-Agent: facebookexternalhit/1.1 Facebot Twitterbot/1.0 X-Forwarded-For: 91.64.xx.xx [=] Abruf vom Empfänger — kein Antippen, keine Zustimmung [=] Kontrolle: WhatsApp → Abruf vom Absender (keine Empfänger-IP) [=] Kontrolle: Telegram → Abruf vom Server (Rechenzentrums-IP)

Illustrativer Mitschnitt. Die IP ist ein Beispiel; die echten Tests nutzten einen Wegwerf-Protokoll-Endpunkt und bestätigten den Abruf vom Empfänger im Vergleich mit WhatsApp und Telegram.

Betroffen

imo Messenger für iOS 2026.1.3 und macOS 2.27, sowie der aktuelle Android-Build (getestet am 1. März 2026). Windows ist nicht betroffen — der Windows-Build hat keine clientseitige Link-Vorschau. Keine behobene Version verfügbar.

Warum es bei imo besonders wiegt

imo erlaubt unaufgeforderten Kontakt über Gruppen und Nachrichten per Telefonnummer. Ein Angreifer braucht keine bestätigte Kontaktbeziehung — eine gemeinsame Gruppe oder eine einzige Antwort genügt, um einen Link zuzustellen und das Leck auszulösen.

Erwartetes Verhalten

  • Abruf über einen Server-Proxy (Signal, WhatsApp, iMessage), oder
  • Vorschau nur auf dem Gerät des Absenders, mit den Metadaten in der verschlüsselten Nachricht, oder
  • Vorschauen nur per Opt-in, mit informierter Zustimmung zur IP-Offenlegung.

CVSS-3.1-Aufschlüsselung

AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N → Basis 4.3 (Mittel)

Die Auswirkung beschränkt sich auf die Offenlegung einer IP-Adresse plus User-Agent, also C:Low — das deckelt den Wert auf Mittel, egal wie wenig Interaktion nötig ist. Feuert der Abruf, ohne dass der Empfänger die Unterhaltung öffnet, wird der Vektor UI:N und der Wert 5.3, weiterhin Mittel.

F-STORAGE · CWE-312

Zugangsdaten im Klartext

Mittel · CVSS 6.2

Beschreibung

Authentifizierungsdaten (Telefonnummer, Session-Cookie, UDID, Auth-Tokens) liegen im Klartext in den lokalen App-Daten — LevelDB auf macOS, eine Datendatei auf Windows. Auf Windows liegt zudem der AES-CBC-Schlüssel im Klartext neben den verschlüsselten Daten, was die Verschlüsselung vollständig aushebelt: Wer die Dateien lesen kann, kann sie entschlüsseln.

Auswirkung

Ein Angreifer mit lokalem Lesezugriff auf Dateien (verlorenes oder gestohlenes Gerät ohne Festplattenverschlüsselung, unverschlüsselte Backups auf geteiltem Speicher, Schadsoftware mit Nutzerrechten oder forensische Sicherung) kann die Authentifizierungsdaten im Klartext auslesen, einschließlich eines gültigen Session-Tokens. Ob sich dieses Token ohne erneute Anmeldung zur Übernahme der Sitzung einspielen lässt, hängt von der serverseitigen Sitzungsbindung bei imo ab und wurde nicht getestet.

CVSS-3.1-Aufschlüsselung

AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N → Basis 6.2 (Mittel)

Die Vertraulichkeits-Auswirkung ist hoch, weil die gespeicherten Authentifizierungsdaten vollständig im Klartext offenliegen; Integrität und Verfügbarkeit sind nicht betroffen. Die Voraussetzung lokalen Zugriffs (AV:Local) hält den Basiswert im Bereich Mittel.

Anmerkung zu den Schweregraden

Warum diese Werte bewusst nicht höher sind Ein CVSS-Basiswert ergibt sich aus Angriffsvektor, nötiger Interaktion und der Auswirkung auf Vertraulichkeit, Integrität und Verfügbarkeit — nicht daraus, wie alarmierend ein Fund klingt. Ein Datenschutz-Leck, das eine IP-Adresse preisgibt, ist C:Low und kann daher nicht „Hoch" erreichen, egal wie „Zero-Click" es ist; Zero-Click senkt nur die Interaktions-Metrik, nicht die Obergrenze der Auswirkung. Ein Klartext-Speicher-Problem braucht lokalen Zugriff, also hält AV:Local es im Bereich Mittel. Diese Funde sind echt, und es lohnt sich, sie zu beheben — und sie sind ehrlich Mittel. Ich veröffentliche lieber belastbare Werte als aufgeblasene.

Zeitlinie der Offenlegung


Dieser Bericht dokumentiert eine Schwachstelle in Datenschutz und Datensicherheit zu Abwehr- und Forschungszwecken. Er enthält keine Schadsoftware und keinen einsatzbereiten Exploit, abgesehen von einem minimalen Protokoll-Endpunkt zur Demonstration des Lecks.