- Se descapó
- 17 de septiembre de 2026 a las 4:26 UTC
- Autor
- Kamo
- Compromit
- 6fed61b
Dos escritores ponen texto plano en USERS.PASSWORD. Ambos llamados User.encodePassword(), que necesita un codificador estático que sólo inicializador de servicios nunca sets **************** ha llevado el setter comentado, "uncoment si está disponible, desde la confirmación inicial). En este servicio lanza, y ambos llamantes se tragaron la excepción: - Reclamar una cuenta precreada en /api/security/registrar establecer la contraseña mecanografiada y la guarde como mecanografiada. La cuenta ni siquiera podía iniciar sesión con él: el fósalista PBKDF2 no puede leer un valor que no es su propio hechizo, por lo que el inicio de sesión falló con "Falta de la autenticación: la excepción del decodificador". Ahora **************** tiendas contraseñaEncoder.encode(chosen), con el codificador de la plataforma inyectada; sin uno falla el registro. - Agregar un miembro (singingly o a granel) almacenó un marcador de posición aleatorio de 24 caracteres. A nadie se le dijo nunca, así que ahora las tiendas sin contraseña en absoluto: el inicio de sesión ya rechaza un hash nulo limpiamente, una reclamación o un restablecimiento establece el real, y un El add de cien filas no paga PBKDF2 por los valores de desechables. Cinco de esas filas estaban en la base de datos en vivo en 2026-09-17 (en forma; no se leyó ningún valor). Los otros escritores (RegistroService, PasswordChangeController, RecoveryServiceImpl) siempre inyectaron PasswordEncoder. ContraseñaChangeController responde ahora "La contraseña actual es incorrecta" para una cuenta sin contraseña en lugar de un 500 (Fivales PBKDF2() tira en null). La línea de depuración de inicio de sesión que imprimió los primeros diez caracteres de la La contraseña presentada ha desaparecido. **************** fija los cinco marcadores de posición a NULL, el estado que la fila de usuarios del sistema es ya en, emparejándolos por forma solamente (el alfabeto de posición, 24 caracteres, nunca firmado, no el Sistema Usuario). Una vista previa de conteo en 2026-09-17 igualó 5 y dejó 0 filas sin golpes fuera. Ejecutar después de que esto se despliegue. Pruebas: ************* (la reclamación a través del verdadero codificador de PasswordEncoderConfig: 96-hex, el login el fólital lo acepta, un marcador de posición NULL sigue reclamable, una cuenta activa mantiene su contraseña, no falla en el codificador en voz alta); ********** a PBKDF2 caso de palabra nulo en PasswordChangeAuthTest; y **************** que escanea este servicio para cualquier setPassword/.password write que no está encode(...) o null, y para cualquier codificadorPassword() llamada. Cada falla contra su mutante (retenencia de texto plano, marcador de posición de texto plano, el códec de tragadoPassword restaurado, el protector nulo retirado). Suite completa 2662: los únicos rojos son los cinco ya encendidos origen/main ************* x4, el trinquete ****************