Seguridad
Última actualización: 27 de julio de 2026
Si has encontrado un fallo de seguridad en Eros, esta es la vía. Se agradece de verdad, y se responde.
Cómo reportar una vulnerabilidad
No abras un issue público
Escribe a eros@darkden.net.
Existe también el canal privado de Security Advisories de GitHub, que es el que preferimos para coordinar el arreglo. Hoy el repositorio es privado, así que ese formulario solo funciona si tienes acceso a él; si no lo tienes, el correo es la vía y no hace falta nada más.
Para que la primera respuesta sirva de algo, incluye:
- qué versión de la app;
- cómo reproducirlo, paso a paso;
- qué impacto crees que tiene;
- si has escrito una prueba de concepto, adjúntala.
Plazos
- Primera respuesta
- 72 horas
- Evaluación inicial
- 7 días
- Corrección
- Según severidad; si es crítica, lo antes posible
Se agradece la divulgación coordinada: da tiempo a publicar el arreglo antes de hacerlo público, y a quien tenga la app instalada a recibirlo.
Qué consideramos grave
Eros maneja algo más sensible que una contraseña: los límites personales e íntimos de quien juega. Su modelo de amenaza no es el habitual, y estas cinco categorías se tratan como críticas aunque no permitan ejecutar código —porque rompen la única promesa del producto—:
- Fuga de límites. Cualquier vía por la que un jugador pueda averiguar qué ha vetado otro: tráfico de red, estado compartido, o una interfaz que ofrezca u oculte opciones de forma reveladora.
- Bypass del filtrado. Servir contenido que viola un límite declarado, por la vía que sea.
- Rotura del anonimato. Descubrir quién vetó algo, quién levantó una norma o quién rechazó una propuesta.
- Persistencia indebida. Que datos que el diseño declara efímeros acaben en disco, en un log o en un informe de fallo.
- Suplantación en sala (modo conectado, aún no publicado). Entrar en una partida ajena, hacerse pasar por otro jugador o forzar códigos por fuerza bruta.
Contexto para evaluar un fallo
Útil si estás mirando el comportamiento de la app desde fuera:
- Sin cuentas ni registro. No se pide identidad para jugar.
- Sin permisos peligrosos. Ni contactos, ni cámara, ni ubicación, ni almacenamiento externo, ni micrófono.
- Los límites viven solo en memoria durante la partida y se destruyen al terminar. No se guardan en preferencias, ni en logs, ni en informes de fallo.
- No hay analítica de contenido. No se registra qué reto salió, quién lo hizo ni quién lo rechazó.
- Lo único persistente es un historial anti-repetición de identificadores de contenido, sin jugadores asociados y vaciable desde Ajustes, más tres preferencias sin interés: tema, idioma y la confirmación de edad.
-
La copia de seguridad de Android está desactivada
(
allowBackup="false"), así que esas dos cosas tampoco salen del teléfono. Los límites no salían de todas formas, porque no llegan a guardarse. Se cuenta en la política de privacidad. - En el modo conectado (aún no publicado), el filtrado ocurre en el servidor precisamente para que los límites de un jugador nunca viajen a los dispositivos de los demás. Las salas son efímeras y no hay base de datos de partidas.
El detalle está en la política de privacidad.
Versiones
El producto está en desarrollo y todavía no hay ninguna versión publicada en Google Play. Cuando la haya, aquí aparecerá qué versiones reciben arreglos de seguridad.
Fuera de alcance
- Ataques que requieran acceso físico prolongado a un dispositivo desbloqueado.
- Ingeniería social sobre los propios jugadores.
- Vulnerabilidades en dependencias de terceros ya publicadas y sin explotación específica en este proyecto. Repórtalas igualmente, pero se priorizarán según su impacto real aquí.
Sobre esta web
Cuenta también, y es fácil de auditar: no ejecuta JavaScript, no usa
cookies y no carga un solo recurso de otro dominio. La cabecera
Content-Security-Policy lo impone con
default-src 'none', y hay una comprobación que rompe el
despliegue si alguien añade un script, una fuente remota o un fragmento
de analítica. Si encuentras una grieta ahí, se reporta igual que lo
demás.