Autenticación
Formas de entrar donde no se debe: recuperaciones de contraseña manipulables, segundos factores que se pueden saltar, códigos que admiten fuerza bruta o comprobaciones de identidad que dependen de datos que controla el atacante.
Guía: Autenticación, qué es y cómo se busca →Cosmos SDK: robar fondos desbloqueados de cuentas lockup ajenas falsificando el remitente del mensaje
Las cuentas de bloqueo (lockup) de x/accounts en Cosmos SDK comprobaban el propietario con el campo Sender del propio mensaje, que nadie validaba. Cualquiera podía mover los fondos ya desbloqueados de una cuenta ajena.
3 min
Khan Academy: acceso a cuentas ajenas con credenciales filtradas en texto claro y visibles en VirusTotal
Un investigador encontró en VirusTotal el email y la contraseña de un usuario de Khan Academy en texto claro. Con ellos bastaba un login normal para entrar en la cuenta, sin segundo factor ni aviso al usuario.
2 min
Remitly: tomar cualquier cuenta cambiando el JWT del restablecimiento de contraseña por el de la víctima
El flujo de restablecimiento de contraseña de Remitly no ligaba el código de un solo uso a la cuenta: un atacante validaba su propio OTP y sustituía su JWT y su cookie de sesión por los de la víctima para cambiarle la contraseña.
3 min
Insightly: saltarse la verificación de email en el alta y crear cuentas con correos ajenos, incluso ya registrados
El alta de Insightly confiaba en el parámetro EmailAddress de la petición a /signup/provisionuser. Cambiándolo se creaba una cuenta con un correo ajeno sin verificarlo, incluso uno ya registrado, con riesgo de toma de cuenta.
3 min
Campfire (Basecamp): una clave de bot sin token permitía escribir mensajes en nombre de cualquier usuario
En Campfire, de Basecamp, una clave de bot con la parte del token vacía (por ejemplo `2-`) se aceptaba como válida y permitía, sin iniciar sesión, publicar mensajes en las salas haciéndose pasar por cualquier usuario.
3 min
Trellix Healthwatch: registro con cualquier email, activación sin aprobación y API que expone clientes y correos internos
En healthwatch.trellix.com se podía registrar una cuenta con un email externo, activarla con "olvidé mi contraseña" sin aprobación del administrador y, ya dentro, listar clientes y correos de empleados.
4 min
CVE-2026-8458: curl reutiliza una conexión Negotiate autenticada aunque cambie el nombre de servicio
libcurl 8.20.0 reaprovechaba una conexión HTTP ya autenticada con Negotiate para un servicio (svcA) al pedir otro distinto (svcB) en el mismo host, sin repetir el handshake. Es una variante de un arreglo incompleto de CVE-2026-5545.
5 min
WordCamp Central: un && en lugar de || dejaba a cualquiera sin sesión exportar los datos privados de organizadores de Meetup
Una condición de autorización mal escrita en el plugin WordCamp Reports permitía a usuarios anónimos descargar un CSV con emails, direcciones y usuarios de Slack de los organizadores de Meetup.
4 min
libcurl filtraba la autenticación Digest de un proxy a otro al cambiar el proxy por variables de entorno
Al reutilizar un mismo handle de libcurl 8.20.0, si el proxy cambiaba vía http_proxy o ALL_PROXY, el segundo proxy recibía una cabecera Proxy-Authorization Digest calculada para el primero, reutilizable contra él.
5 min
WordPress.org (Rosetta): un Editor podía convertir a otra cuenta en Administrador del sitio mediante una invitación
Un mu-plugin de wordpress.org guardaba el rol de las invitaciones tal como llegaba en la petición, sin mirar editable_roles. Un Editor de un sitio local de Rosetta podía así hacer Administrador a una cuenta.
4 min
Shopify Checkout Blocks: las rutas de datos de Next.js saltaban el login de empleados y exponían 200.000 tiendas
El panel interno de Checkout Blocks solo se protegía con una regla que miraba el inicio de la URL. Pidiendo las mismas páginas por la ruta /_next/data/ de Next.js, cualquiera obtenía sin sesión la lista de tiendas instaladas y sus flags internos.
5 min
Django delataba qué usuarios existen: ataque de tiempos en la autenticación de Apache con mod_wsgi
check_password en el manejador mod_wsgi de Django contestaba al instante si el usuario no existía y tardaba cientos de milisegundos si existía. Midiendo esa diferencia, un atacante podía descubrir cuentas válidas.
4 min