Recompensas por errores
Encuentra un fallo de seguridad. Te pagamos por ello.
My AI Fin App guarda conexiones bancarias, presupuestos y deudas de personas reales. Si encuentras una forma de llegar a datos que no son tuyos, queremos enterarnos por ti primero, y te pagaremos por ello. Esta página explica qué está incluido, qué no, cómo probar sin perjudicar a nadie y qué pasa después de escribirnos.
Reportar una vulnerabilidadRecompensas pagadas
Los reportes válidos y originales se recompensan. El monto depende de la gravedad y de la calidad del reporte.
Puerto seguro
La investigación de buena fe que siga estas reglas está autorizada. No emprenderemos acciones contra ti.
Responden los ingenieros
Los reportes llegan directamente a los ingenieros que construyen la app. Espera una primera respuesta en unos pocos días hábiles.
Incluido
Todo lo que un usuario con sesión iniciada puede alcanzar, y lo que hay detrás:
- La app web en www.myaifin.app, incluido todo lo que está bajo /app.
- Las funciones edge que la app llama en qvmgeoeigwztyrzayykn.supabase.co/functions/v1/.
- Las reglas de acceso de la base de datos: leer o cambiar las filas de otro hogar es justo para lo que existe este programa.
- El conector para asistentes en www.myaifin.app/mcp, sus endpoints OAuth y los tokens de acceso personal.
- Las apps de iOS y Android.
- Inicio de sesión, autenticación de dos factores, restablecimiento de contraseña, recuperación de cuenta e invitaciones al hogar.
Lo que más nos importa
- Leer o cambiar los datos financieros de otro usuario o de otro hogar.
- Tomar el control de una cuenta, o saltarse la autenticación de dos factores.
- Obtener un token de conexión bancaria, o actuar sobre la conexión bancaria de otra persona.
- Llamar a una función edge o al conector de asistentes haciéndote pasar por otra persona.
- Cross-site scripting almacenado, falsificación de peticiones del lado del servidor o ejecución de código en cualquier cosa incluida.
No incluido
Esto no recibe recompensa. Algunos son problemas reales de otra empresa; repórtaselos a ella.
- La infraestructura de Plaid, Supabase, Vercel, Google o Apple. Repórtalo en sus propios programas.
- Denegación de servicio, pruebas de carga o cualquier cosa que empeore la app para otras personas.
- Ingeniería social, phishing o ataques físicos contra usuarios o contra quien trabaja en la app.
- Resultados de escáneres automáticos sin una prueba de impacto que funcione.
- Cabeceras de seguridad, atributos de cookies o registros de correo (SPF, DKIM, DMARC) ausentes sin impacto demostrado.
- Clickjacking en páginas sin acciones sensibles, self-XSS y CSRF de cierre de sesión.
- Límites de frecuencia en endpoints que no protegen un secreto ni cuestan dinero.
- Números de versión, trazas de error o librerías desactualizadas sin forma de explotarlas.
- Cualquier cosa que requiera un teléfono con root o jailbreak, o el dispositivo desbloqueado de otra persona en tus manos.
Conocido y aceptado
Hemos revisado cada uno de estos puntos, más de una vez, y son así por diseño. Los informes sobre ellos reciben una breve respuesta que remite aquí y no tienen recompensa.
- La clave de API de Supabase en la app
- La clave publicable va a propósito en cada copia de la app web y móvil. Identifica el proyecto; no inicia sesión por nadie. Lo que protege los datos es el token de sesión del propio usuario y la seguridad a nivel de fila de la base de datos.
- Access-Control-Allow-Origin en supabase.co
- La API de Supabase refleja el origen de la solicitud, con Allow-Credentials. La app nunca inicia sesión con cookies: el token viaja en la cabecera Authorization, que un navegador no añade para otro sitio, así que una página de otro origen no puede hacer una solicitud con la sesión de un visitante.
- Tu propia cuenta, leída con tu propio token
- Endpoints como /auth/v1/user devuelven el correo, el ID y los datos de inicio de sesión de la propia cuenta. Un hallazgo que necesita de entrada el token de acceso de alguien y luego solo hace lo que esa sesión ya podía hacer no es una vulnerabilidad.
- Nombres de tablas y columnas en errores de la API
- El esquema de la base de datos no es secreto. El acceso lo decide la seguridad a nivel de fila en cada tabla, no ocultar los nombres.
- 'unsafe-inline' para estilos
- La política de seguridad de contenido permite estilos en línea, que necesitan los componentes de la interfaz. Los scripts en línea no están permitidos.
Reglas
- Prueba solo con cuentas que tú creaste. Para probar el aislamiento entre hogares, crea dos cuentas gratuitas e intenta pasar de una a la otra.
- Si ves datos que no son tuyos, detente. No los guardes, no los cambies ni sigas mirando; di en tu reporte lo que viste.
- No conectes ningún banco que no sea el tuyo, y no desconectes ni alteres las conexiones de otras personas.
- Mantén bajo el tráfico automatizado. Nada que haga más lenta la app para hogares reales.
- Una vulnerabilidad por reporte, salvo que varias solo importen juntas.
- Mantenlo en privado hasta que esté arreglado, o durante 90 días desde que lo reportes, lo que ocurra primero. Podemos acordar otra fecha.
- Pedir un pago antes de compartir los detalles es extorsión, no investigación, y termina la conversación.
Recompensas
Los montos no se publican. Cada reporte válido se paga según su impacto real, cuánto de ese impacto demostraste y lo claro que es el reporte. Un reporte corto y reproducible de un fallo crítico vale más que uno largo sobre un fallo menor.
Crítica
La mayor recompensa
Leer o cambiar los datos de cualquier hogar, tomar una cuenta sin interacción del usuario, robar tokens de conexión bancaria.
Alta
Recompensa importante
Saltarse la autenticación de dos factores, XSS almacenado en la app, actuar como otro usuario a través de una función edge.
Media
Recompensa
Filtrar datos personales limitados de otro usuario, CSRF en una acción sensible, debilidades en enlaces de invitación o de restablecimiento.
Baja
Recompensa a nuestro criterio
Problemas con un impacto real pero pequeño, o que requieren condiciones poco probables.
- El primer reporte de un problema recibe la recompensa. Los duplicados posteriores reciben agradecimiento.
- Las recompensas se pagan una vez confirmado el problema, por un medio que acordemos.
- Eres responsable de los impuestos sobre la recompensa. No podemos pagar donde la ley lo prohíba, incluidas personas en listas de sanciones.
Cómo reportar
Escribe a la dirección de abajo con "Security" en el asunto. Incluye:
- Qué encontraste y qué tan grave te parece.
- Los pasos para reproducirlo: las URL, las peticiones y las cuentas que usaste (las tuyas).
- Lo que un atacante podría hacer realmente con ello.
- Cualquier cosa que hayas visto que no era tuya. Dilo y detente ahí.
Qué pasa después
1
Recibido
Una respuesta en unos pocos días hábiles confirmando que tenemos tu reporte.
2
Evaluado
Lo reproducimos y te decimos la gravedad que le asignamos, normalmente en dos semanas.
3
Arreglado
Lo arreglamos y te avisamos, para que puedas comprobar el arreglo si quieres.
4
Pagado
Se paga la recompensa.
Puerto seguro
Si sigues esta página de buena fe, consideramos tu investigación autorizada. No emprenderemos acciones legales contra ti ni te denunciaremos a las autoridades por ello, y si un tercero actúa contra ti por una investigación que siguió estas reglas, dejaremos claro que estaba autorizada.
Buena fe significa que evitaste dañar a los usuarios, no accediste ni guardaste más datos de los necesarios para mostrar el problema y nos diste un plazo razonable para arreglarlo antes de contárselo a nadie. Si dudas de si algo está permitido, pregunta primero.
Kind of Good Apps, LLC gestiona este programa a su criterio y puede cambiarlo o terminarlo en cualquier momento. Las recompensas se deciden caso por caso. Las pruebas que rompan estas reglas no están cubiertas por el puerto seguro.