Technical write-up
imo Messenger — findings & analysis
Summary & severity
imo Messenger (PageBites, Inc.) was tested on Android, iOS, macOS and Windows. Two findings are published here. A third observation — the spoofed Facebook User-Agent — is documented as part of F-PREVIEW rather than as a standalone issue, because on its own it is a behaviour, not a vulnerability.
| ID | Finding | CWE | CVSS 3.1 | Severity |
| F-PREVIEW | Zero-click IP/metadata leak via link preview | 200/319 | 4.3 | Medium |
| F-STORAGE | Cleartext credential storage → account takeover | 312 | 6.2 | Medium |
| F-UA | Request spoofs facebookexternalhit (folded into F-PREVIEW) | 451 | — | Context |
F-PREVIEW · CWE-200 / CWE-319
Zero-click IP & metadata leak via link preview
Medium · CVSS 4.3
Description
On receiving a chat message that contains a URL, the recipient's client performs an HTTP GET to that URL to build a link preview. The fetch originates from the recipient's device, exposing their real IP address, User-Agent and online status to whoever controls the URL. No opt-out, no caching (the fetch repeats each time the chat is opened), and the request carries the User-Agent facebookexternalhit/1.1 Facebot Twitterbot/1.0. A free request-logging service such as webhook.site is enough — the attacker needs no infrastructure of their own.
request log behind the link
$ GET /t/aXk9 HTTP/1.1
Cf-Connecting-IP: 91.64.xx.xx ← recipient's real IP
└─ geolocates to: Berlin, DE
User-Agent: facebookexternalhit/1.1 Facebot Twitterbot/1.0
X-Forwarded-For: 91.64.xx.xx
[=] recipient-side fetch — zero taps, zero consent
[=] control: WhatsApp → sender-side fetch (no recipient IP)
[=] control: Telegram → server-side fetch (datacenter IP)
Illustrative capture. The IP is an example; real tests used a disposable logging endpoint and confirmed the recipient-side origin against WhatsApp and Telegram.
Affected
imo Messenger for iOS 2026.1.3 and macOS 2.27 (and the current Android and Windows builds as of 1 March 2026). No fixed version available.
Why it matters on imo specifically
imo permits unsolicited contact through groups and phone-number messaging. An attacker needs no accepted contact relationship — a shared group, or a single reply, is enough to deliver a link and trigger the leak.
Expected behaviour
- Server-side proxy fetching (Signal, WhatsApp, iMessage), or
- Sender-only preview generation with metadata embedded in the encrypted message, or
- Opt-in previews with informed consent about the IP exposure.
CVSS 3.1 breakdown
AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N → Base 4.3 (Medium)
The impact is limited to disclosure of an IP address plus a User-Agent, which is C:Low — this caps the score at Medium regardless of how little interaction is required. If the fetch fires without the recipient opening the conversation, the vector becomes UI:N and the score 5.3, still Medium.
F-STORAGE · CWE-312
Cleartext credential storage → account takeover
Medium · CVSS 6.2
Description
Authentication material (phone number, session cookie, UDID, auth tokens) is stored in cleartext in local application data — LevelDB on macOS, a data file on Windows. On Windows, the AES-CBC key is stored in cleartext alongside the encrypted data, which defeats the encryption entirely: anyone with filesystem read access can decrypt it.
Impact
An attacker with local file-read access (lost/stolen device without full-disk encryption, unencrypted backups on shared storage, malware running with user privileges, or forensic acquisition) can extract valid session credentials and impersonate the user against imo's backend without re-authentication.
CVSS 3.1 breakdown
AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N → Base 6.2 (Medium)
Confidentiality impact is High (full account credentials), but the requirement for local access (AV:Local) holds the base score in the Medium band.
A note on the severity scores
Why these numbers are deliberately not higher
A CVSS base score is driven by the attack vector, the interaction needed and the confidentiality/integrity/availability impact — not by how alarming a finding sounds. A privacy leak that reveals an IP address is C:Low, so it cannot reach High no matter how "zero-click" it is; zero-click only lowers the interaction metric, not the impact ceiling. A cleartext-storage issue needs local access, so AV:Local keeps it in the Medium band. These findings are real and worth fixing — and honestly Medium. I would rather publish defensible scores than inflated ones.
Disclosure timeline
- 2025-08-25
Vendor (PageBites, Inc.) contacted at privacy@imo.im. No response.
- 2026-02
CVE request to MITRE initially rejected for insufficient version detail; resubmitted with concrete versions (iOS 2026.1.3, macOS 2.27).
- 2026-03-01
Reported to CISA/CERT-CC (VU#138533, VRF#26-03-JXZFJ) and to BSI CERT-Bund.
- 2026-05 → 06
CERT/CC attempts vendor outreach; no reply. Findings discussed, not disputed.
- 2026-08-24
CERT/CC deprioritises and advises public disclosure; ~1 year of vendor silence. All findings remain unpatched.
This write-up documents a privacy and data-protection weakness for defensive and research purposes. It contains no malware and no ready-to-run exploit beyond a minimal logging endpoint used to demonstrate the leak.