
TaxJar (Stripe) permitía a un org owner cambiar el email de cualquier miembro para tomar el control total de su cuenta.
@akashhamal0x01 descubrió que en TaxJar (plataforma de gestión fiscal, dentro del programa de bug bounty de Stripe en HackerOne) un *Organization Owner* podía modificar el email de cualquier miembro de su organización.
El flujo de ataque es directo:
1. El atacante controla una org en TaxJar (o crea una nueva). 2. La víctima es miembro de esa org. 3. El atacante *cambia el email de la víctima* por una dirección propia. 4. Solicita un reset de contraseña al nuevo email. 5. Acceso total. Cuenta tomada.
La API de gestión de miembros no validaba si el campo `email` debería ser editable desde un rol de organización. TaxJar lo parchó restringiendo a los Organization Owners de editar ese campo en cuentas ajenas.
Este patrón aparece constantemente en plataformas B2B multi-tenant (infraestructura compartida que sirve a múltiples organizaciones clientes). Los roles de org heredan demasiados permisos por diseño: «el owner gestiona su org» termina significando «puede tocar cualquier atributo de sus miembros», incluyendo campos de identidad que nunca deberían ser accesibles desde ese nivel.
El impacto potencial es takeover masivo: una org con 500 empleados = 500 cuentas secuestrables con llamadas API legítimas, sin explotar CVEs ni bypassear 2FA.
La clase de bug es Broken Access Control — posición #1 en OWASP (Open Web Application Security Project — lista de los fallos más críticos en apps web). El fallo concreto: la lógica de negocio confundió «gestionar organización» con «editar identidad de usuarios».
Si cazas bugs en SaaS multi-tenant o plataformas B2B:
Este bug vive en la intersección entre la lógica de negocio y el modelo de permisos. Los scanners automáticos no lo detectan. Se caza leyendo la API y razonando sobre qué debería poder hacer cada rol sobre los datos de otros usuarios.
Ayuda a que más gente descubra BBLabs News.
¿Quieres recibir noticias así cada día?
Ver todos los artículos