- Se descubrió una vulnerabilidad grave en Freedom Chat, una app de mensajería con temática MAGA (sector conservador de EE. UU.), que exponía los números de teléfono y códigos PIN de los usuarios
- La app es la sucesora de un proyecto anterior llamado Converso, que ya había tenido problemas de implementación de cifrado y exposición de datos
- El análisis mostró que, a través de la función de canales, los códigos PIN de todos los miembros se enviaban a otros usuarios, y que mediante la API de sincronización de contactos era posible vincular números de teléfono con UID
- El investigador confirmó que no había rate limiting de ningún tipo, por lo que en un solo día se pudieron recolectar los números de teléfono de todos los usuarios de Freedom Chat
- El caso se señala como un ejemplo de cómo una app que “enfatiza la seguridad” terminó fallando incluso en la protección básica de la privacidad
De Converso a Freedom Chat
- Converso, lanzada en 2023, afirmaba tener una “arquitectura descentralizada sin servidor” y “E2EE de última generación”, pero el análisis del investigador crnković reveló que todas esas afirmaciones eran falsas
- En realidad usaba un servidor central y un servicio de cifrado de terceros (Seald), y las claves de cifrado podían derivarse a partir de información pública
- Todos los mensajes se subían a un bucket público de Firebase, por lo que cualquiera podía verlos
- Después, el CEO Tanner Haas retiró la app y la rebautizó como Freedom Chat, alegando las “preocupaciones de privacidad del sector conservador”
- Mencionó la lección de “aceptar las críticas y mejorar”, pero los problemas de seguridad se repitieron
Estructura y funciones de Freedom Chat
- La app usa registro basado en número de teléfono y verificación con código 2FA; configurar un PIN es opcional
- Sus funciones principales son el chat 1:1 y los canales (Channels), con una estructura similar a Telegram
- La app promocionaba una función para bloquear capturas de pantalla como “característica de seguridad”, aunque no tenía relación con la seguridad real
Filtración de códigos PIN
- El resultado de la solicitud a la API
/channel incluía el campo PIN dentro del objeto de usuario (user object) de 1,519 miembros del canal
- Junto con el UID de cada usuario, su clave de Seald, fecha de creación y otros datos, también se exponía en texto plano un código PIN de 6 dígitos
- Tras crear una cuenta nueva y comprobarlo, el investigador vio que su propio PIN aparecía tal cual en los datos de respuesta
- Es decir, el PIN de todos los usuarios que seguían en el canal predeterminado quedaba expuesto a otros usuarios
Vulnerabilidad de vinculación de números de teléfono
- La API
/user/numbers comprobaba la existencia de contactos de la misma manera que WhatsApp
- Si un número incluido en la solicitud pertenecía a un usuario de Freedom Chat, devolvía su UID y clave de Seald
- El investigador confirmó que esta API no tenía absolutamente ningún rate limiting, por lo que era posible probar en secuencia todos los números de teléfono de EE. UU.
- Como resultado, se podía hacer la vinculación número de teléfono-UID y, al combinarla con los datos UID-PIN expuestos anteriormente, completar un mapeo número de teléfono-PIN
Experimento de filtración de datos de todos los usuarios
- El investigador escribió un script en Python para consultar automáticamente todos los números telefónicos de Norteamérica (combinaciones de 7 dígitos × código de área)
- En cada solicitud enviaba 40,000 números, con un tiempo de respuesta promedio de alrededor de 1.5 segundos
- Durante 27 horas, todas las solicitudes se procesaron correctamente y se logró recolectar los números de teléfono de todos los usuarios de Freedom Chat
- El servidor respondía sin rate limiting ni bloqueos, dejando los datos en un estado de acceso completamente abierto
Respuesta y acciones posteriores
- 2025-11-23: se descubre la vulnerabilidad
- 2025-12-04: el periodista de TechCrunch Zack Whittaker informa a Freedom Chat sobre la vulnerabilidad
- 2025-12-05: Freedom Chat responde que “el PIN no sirve para restaurar mensajes” y que ya estaba en marcha un proceso de auditoría
- 2025-12-09: se notifica que el problema fue corregido
- 2025-12-11: se publican simultáneamente este informe y el artículo de TechCrunch
Lección clave
- Freedom Chat presumía ser “súper segura”, pero carecía de autenticación básica, rate limiting y diseño de protección de datos
- Como resultado, quedaron expuestos los números de teléfono y PIN de todos los usuarios, anulando en la práctica sus funciones de seguridad
- Se considera un caso representativo de la brecha entre el marketing de seguridad y la implementación real
1 comentarios
Opiniones en Hacker News
El sistema cifrado de consulta de números telefónicos de Signal es interesante
Como el servidor consulta los números usando operaciones XOR a nivel de bits en RAM cifrada por hardware, incluso examinando el sistema en su nivel más bajo no se puede saber si el número solicitado existe o no
Claro, el rate limiting es otro problema importante por separado. Al construir un sistema de seguridad, realmente hay muchísimos casos límite que cubrir
En plataformas no comerciales y centradas en la privacidad como Matrix, este tipo de mapeo debería ser imposible desde el principio
Por ejemplo, se propone subir un valor hash de los números telefónicos de cada par de usuarios para que solo puedan encontrarte las personas que ya están en tu lista de contactos
La ventaja es que el espacio de hash es amplio y dificulta la inversión, y que el usuario puede definir directamente el alcance de descubrimiento permitido
La desventaja es que un atacante puede generar todas las combinaciones de números y extraer relaciones de contactos, y un gobierno también podría interceptar la verificación por SMS y abusar de ello
El campo
pindel objeto de usuario parece sospechosoProbablemente haya sido un problema causado por usar una biblioteca de serialización opt-out. Como por defecto serializa el objeto completo, si el desarrollador olvida configurar la exclusión de cierto campo, este queda expuesto tal cual
O quizá simplemente usaban un diccionario de JS en el servidor y no quitaron el campo antes de responder
Esta vulnerabilidad es un problema antiguo mencionado en un paper del equipo de investigación de la Universidad de Viena, y en 2016 también se explotó de la misma manera en Telegram, lo que permitió al gobierno iraní recopilar los números telefónicos de 15 millones de usuarios
Enlace relacionado: blog de Telegram
La mayoría de las vulnerabilidades de seguridad hoy en día vienen simplemente de llamar endpoints HTTP de formas no previstas
Cuando uno piensa en hackeos en 2025 imagina técnicas complejas, pero la realidad es que siguen desplegando APIs sin siquiera rate limiting. Es algo que podría resolverse con una sola línea de configuración en Nginx
La mayoría de los objetivos están puestos en reducir la fricción para el usuario y mejorar la eficiencia comercial. Muchos desarrolladores implementan funciones sin conocer vulnerabilidades básicas como XSS o SSRF
Errores básicos de seguridad como equivocarse con el mapeo de puertos de Docker o no poner CSP son demasiado comunes
Al leer la frase “quiero ofrecerles a los lectores solo las mejores entradas de blog”, sentí que había encontrado a alguien con una forma de pensar parecida a la del autor
Me pregunto si Freedom Chat® tiene una función para impedir que periodistas entren a chats grupales. Lo pregunto medio en broma, medio en serio, por un amigo del DoD
Solo este año ya ha habido varios casos en que una “app de seguridad” terminó filtrando datos de usuarios al manejarlos
Solo los que recuerdo ya suman como 20 centavos (=4 casos), pero probablemente haya más
Casos relacionados: 1, 2, 3
El año pasado me topé por casualidad con una bolsa de trabajo del GOP, y las postulaciones estaban guardadas en el mismo índice de búsqueda que los avisos laborales
Busqué “bob” y me impactó ver que quedaban expuestos los currículums y respuestas de los postulantes tal cual
Después del caso Anom, hace falta una palabra más apropiada que honeypot
Un mensajero realmente seguro no va a salir de una estrategia así. Pero el marketing sigue, y cada vez atrae a nuevos usuarios
Las filtraciones de datos ocurren tan seguido que la gente ya se está volviendo insensible. Incluso las compensaciones de demandas colectivas terminan siendo un proceso para entregar todavía más datos personales
Los mercados de predicción, las criptomonedas y cosas parecidas también dan la impresión de disfrazar como “éxito” un fracaso estructural que termina perjudicando a quienes participan
Freedom Chat anunció que “la corrección del problema está completa”, pero queda la duda de si realmente lo arreglaron
Si la frase “no tenía experiencia en desarrollo de apps móviles, pero pensó que como era inteligente no sería difícil” es una cita real, suena casi como un remate de stand-up