Popular aplicación de mensajería por Bluetooth provoca una desagradable sorpresa entre sus usuarios.

Especialistas de la empresa BARGHEST detectaron una vulnerabilidad en el mensajero descentralizado BitChat que permitía inyectar mensajes falsos en la red Bluetooth-mesh de la aplicación. El fallo afectaba la versión de BitChat para iOS y podía utilizarse para enviar spam, suplantar mensajes y perturbar el funcionamiento de la red sin conexión a Internet.
El análisis mostró una cadena de fallos que conducía a lo que se conoce como envenenamiento de la memoria caché. En ese escenario, el atacante envía un paquete de datos especialmente formado que el cliente acepta como legítimo y guarda en la caché local. Tras la sincronización con otros dispositivos, ese paquete se propaga automáticamente por toda la red.
BitChat está pensado para el intercambio de mensajes sin infraestructura central. Los dispositivos se descubren entre sí mediante Bluetooth Low Energy y reenvían mensajes siguiendo el principio de una red de difusión por rumores, extendiendo los datos gradualmente entre los participantes. Cada nodo guarda una memoria caché local de mensajes y la comparte con nuevos vecinos al conectarse. Precisamente la memoria caché actúa como el punto clave de confianza del sistema: solo los mensajes verificados deben entrar en ella y luego transmitirse a otros usuarios.
En la versión de iOS 1.15.0 el mecanismo de verificación funcionaba incorrectamente. El cliente podía aceptar un paquete sin firma criptográfica y guardarlo en la caché. Una vez guardado, ese paquete se consideraba un mensaje normal y se difundía en las sincronizaciones posteriores con otros dispositivos.
El ataque se apoyaba en varios puntos débiles en el tratamiento de los paquetes. El cliente confiaba en el identificador del remitente indicado dentro del propio paquete, aunque ese identificador estaba controlado por el atacante. Durante una breve ventana de sincronización la aplicación relajaba la comprobación de las marcas temporales, lo que facilitaba pasar la validación. Además, existía una forma de eludir la autenticación: si el parámetro TTL era cero, la aplicación aceptaba el paquete incluso sin firma. Asimismo, el código guardaba mensajes de difusión en la caché antes de la verificación definitiva.
La combinación de estas características permitía al atacante conectarse al dispositivo por Bluetooth, enviar un paquete de anuncio válido y luego inyectar un mensaje sin firmar. La aplicación aceptaba el mensaje, lo mostraba en el chat y lo añadía a la caché. A partir de entonces, el mensaje comenzaba a propagarse entre los demás participantes de la red durante la sincronización habitual.
Según los autores del estudio, una vez que el paquete malicioso entraba en la caché, su propagación continuaba de forma automática. Bastaba con «envenenar» un nodo de la red: los demás dispositivos recibían los mensajes falsos al intercambiar la caché, incluso si el atacante ya se había desconectado.
El fallo no permitía ejecutar código arbitrario, pero podía minar seriamente la fiabilidad de las comunicaciones sin conexión. En situaciones de corte de Internet, este tipo de aplicaciones se emplean para coordinar acciones, por lo que los mensajes falsos y el ruido en la red pueden interrumpir el intercambio de información.
Los desarrolladores de BitChat solucionaron el problema el mismo día en que recibieron la notificación. La corrección se publicó el 28 de enero de 2026. Un análisis adicional mostró que la versión de la aplicación para Android no es vulnerable a este ataque: el cliente verifica estrictamente las firmas digitales y guarda los datos en la caché solo tras la validación completa.