Reports
BAJA[DENEGACIÓN DE SERVICIO]#3829030

Un deep link de depuración en Yelp Business para Android permite cerrar la app y la sesión desde otra aplicación

La app Android de Yelp Business aceptaba desde fuera el deep link yelp-biz:///debug_navigation. Cualquier otra app del dispositivo podía invocarlo para hacerla fallar y dejar al usuario sin sesión, tantas veces como quisiera.

Resumen
Resumen en castellano de un reporte público, no una traducción literal. El código y los comandos se mantienen como en el original.

Resumen

La aplicación Android de Yelp para negocios (com.yelp.android.biz) llevaba en su versión de producción una ruta de navegación pensada para depuración, accesible mediante un deep link:

yelp-biz:///debug_navigation

El problema es doble. Por un lado, esa ruta podía abrirse desde fuera de la aplicación, sin ninguna restricción. Por otro, al procesarla la app llegaba a un estado que no sabía gestionar y se cerraba de golpe. Al volver a abrirla, la sesión había dejado de ser válida y el usuario tenía que identificarse de nuevo.

Como en Android una aplicación puede lanzar los deep links que otra expone, cualquier app instalada en el mismo dispositivo podía provocar el fallo sin pedir permisos especiales, y repetirlo a voluntad. El resultado es una denegación de servicio local y persistente contra quien usa Yelp Business.

El investigador 0xkarim_dix lo envió a Yelp el 27 de junio de 2026, clasificado como "Violation of Secure Design Principles" y con severidad baja. El reporte figura como resuelto, recibió recompensa (el importe no es público) y se divulgó el 13 de agosto de 2026.

Pasos de reproducción

  1. Instalar la aplicación Yelp Business e iniciar sesión.
  2. Lanzar el deep link desde fuera de la aplicación, por ejemplo con adb:
adb shell am start -a android.intent.action.VIEW -d "yelp-biz:///debug_navigation"
  1. Comprobar el resultado:
  • La aplicación se cierra inmediatamente.
  • Al abrirla otra vez, la sesión ya no está iniciada.
  • Hay que volver a autenticarse.
  1. Repetir la orden las veces que se quiera para interrumpir el uso de la aplicación de forma continua.

adb solo sirve para la demostración. Una aplicación maliciosa instalada en el dispositivo conseguiría lo mismo con un intent:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("yelp-biz:///debug_navigation"));
startActivity(intent);

El reporte incluía además un vídeo con la prueba de concepto.

Impacto

El fallo no expone información sensible ni permite tomar el control de la cuenta: afecta a la disponibilidad. Una aplicación aparentemente inofensiva, instalada desde una tienda de terceros o incluida dentro de otra, podía:

  • Hacer que Yelp Business se cerrase.
  • Dejar sin efecto la sesión del usuario y obligarle a iniciarla de nuevo.
  • Repetirlo periódicamente en segundo plano, o cada vez que la víctima intentase usar la app, hasta impedir su uso normal.

Yelp Business es la herramienta con la que los negocios gestionan su actividad, así que el efecto práctico es que el propietario no pueda consultar con rapidez pedidos, mensajes o la gestión de su cuenta. El investigador señala también las consecuencias indirectas: usuarios que creen que su cuenta ha sido comprometida o que la aplicación es inestable, más consultas al soporte y pérdida de confianza.

Remediación

Yelp marcó el reporte como resuelto, aunque el texto divulgado no detalla qué cambio se aplicó. Las medidas que proponía el investigador eran:

  • Eliminar los deep links de depuración de las versiones de producción.
  • Restringir las rutas internas de depuración para que no puedan invocarlas aplicaciones externas.
  • Validar los deep links entrantes antes de procesarlos.
  • Gestionar las peticiones de navegación inesperadas sin que la aplicación se cierre.
  • Evitar que un cierre inesperado invalide la sesión autenticada, salvo que sea necesario.
  • Limitar los intent filters exportados cuando no haga falta acceso externo.