Informe técnico
imo Messenger — hallazgos y análisis
Prueba de concepto y reproducción en GitHub ↗
Resumen y gravedad
Se probó imo Messenger, de PageBites, Inc., en Android, iOS, macOS y Windows. Se publican dos hallazgos. Una tercera observación, la suplantación del User-Agent de Facebook, se documenta dentro de F-PREVIEW: por sí sola es un comportamiento, no una vulnerabilidad independiente.
| ID | Hallazgo | CWE | CVSS 3.1 | Gravedad |
| F-PREVIEW | Filtración de IP y metadatos sin clics mediante la vista previa | 200/319 | 4.3 | Media |
| F-STORAGE | Almacenamiento de credenciales en texto claro | 312 | 6.2 | Media |
| F-UA | La petición suplanta facebookexternalhit (incluido en F-PREVIEW) | 451 | — | Contexto |
F-PREVIEW · CWE-200 / CWE-319
Filtración de IP y metadatos sin clics mediante la vista previa
Media · CVSS 4.3
Descripción
Al recibir un mensaje con una URL, el cliente del destinatario envía una petición HTTP GET a esa dirección para generar la vista previa. La petición sale del dispositivo del destinatario y revela su IP real, User-Agent y estado de conexión a quien controla la URL. No hay opción para desactivarlo ni caché: se repite cada vez que se abre el chat. La petición lleva el User-Agent facebookexternalhit/1.1 Facebot Twitterbot/1.0. Basta un servicio gratuito de registro de peticiones como webhook.site; el atacante no necesita infraestructura propia.
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)
Captura ilustrativa. La IP es de ejemplo. Las pruebas reales utilizaron un endpoint temporal de registro y confirmaron el origen en el destinatario mediante comparaciones con WhatsApp y Telegram.
Versiones afectadas
imo Messenger para iOS 2026.1.3, macOS 2.27 y la versión de Android vigente durante la prueba del 1 de marzo de 2026. Windows no está afectado: su versión no genera vistas previas en el cliente. No hay una versión corregida disponible.
Por qué resulta relevante en imo
imo permite el contacto no solicitado mediante grupos y mensajes a números de teléfono. No es necesario que el destinatario haya aceptado al atacante como contacto: compartir un grupo o recibir una sola respuesta puede bastar para enviar el enlace y provocar la filtración.
Comportamiento esperado
- Descargar la vista previa mediante un proxy en el servidor, como Signal, WhatsApp o iMessage; o bien
- Generarla solo en el dispositivo del remitente e incluir sus metadatos en el mensaje cifrado; o bien
- Activar las vistas previas únicamente con consentimiento informado sobre la exposición de la IP.
Desglose de CVSS 3.1
AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N → Base 4.3 (media)
El impacto se limita a revelar una IP y un User-Agent, lo que corresponde a C:Low y mantiene la puntuación en gravedad media aunque la interacción sea mínima. Si la petición se produce sin abrir la conversación, el vector pasa a UI:N y la puntuación a 5.3, todavía media.
F-STORAGE · CWE-312
Almacenamiento de credenciales en texto claro
Media · CVSS 6.2
Descripción
Los datos de autenticación, como el número de teléfono, la cookie de sesión, el UDID y los tokens, se guardan en texto claro en los datos locales de la aplicación: LevelDB en macOS y un archivo de datos en Windows. En Windows, la clave AES-CBC está almacenada en texto claro junto a los datos cifrados, lo que anula la protección: cualquiera que pueda leer esos archivos puede descifrarlos.
Impacto
Un atacante con permiso para leer archivos locales puede acceder a los datos de autenticación, incluido un token de sesión activo. Puede ocurrir en un dispositivo perdido o robado sin cifrado completo de disco, en copias sin cifrar en almacenamiento compartido, con malware que tenga permisos de usuario o mediante una extracción forense. No probé si ese token permite suplantar al usuario sin volver a autenticarse: depende de cómo imo vincule las sesiones en sus servidores.
Desglose de CVSS 3.1
AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N → Base 6.2 (media)
El impacto sobre la confidencialidad es alto porque los datos de autenticación quedan completamente expuestos. No se afectan la integridad ni la disponibilidad. La necesidad de acceso local (AV:Local) mantiene la puntuación base en gravedad media.
Sobre las puntuaciones de gravedad
Por qué no asigno puntuaciones más altas La puntuación base CVSS depende del vector de ataque, la interacción necesaria y el impacto sobre la confidencialidad, integridad y disponibilidad, no de lo alarmante que suene el hallazgo. Una filtración de IP corresponde a C:Low; no alcanza gravedad alta por ser «sin clics», ya que eso solo cambia la interacción, no el impacto. El almacenamiento en texto claro exige acceso local, por lo que AV:Local lo mantiene en gravedad media. Son problemas reales que merecen corregirse, con una gravedad media justificada. Prefiero publicar puntuaciones defendibles a inflarlas.
Cronología de la divulgación
- 2025-08-25
Se contactó con el fabricante, PageBites, Inc., en privacy@imo.im. Sin respuesta.
- 2026-02
MITRE rechazó inicialmente la solicitud de CVE por falta de detalle sobre las versiones. Se volvió a presentar con iOS 2026.1.3 y macOS 2.27.
- 2026-03-01
Notificado a CISA/CERT-CC (VU#138533, VRF#26-03-JXZFJ) y a BSI CERT-Bund.
- 2026-05 → 06
CERT/CC intentó contactar con el fabricante, sin respuesta. Los hallazgos se debatieron y no fueron cuestionados.
- 2026-08-24
CERT/CC redujo la prioridad del caso y recomendó la divulgación pública tras aproximadamente un año de silencio del fabricante. Los hallazgos siguen sin corregirse.
Este informe documenta un problema de privacidad y protección de datos con fines de investigación y defensa. No contiene malware ni una herramienta de explotación lista para usar, más allá de un endpoint mínimo de registro para demostrar la filtración.