Skip to content

Endurecer MFA: logout borra mfa_trusted y recuerdo de dispositivo administrable#16

Closed
AtlasLabs797 wants to merge 1 commit into
V-01.08from
codex/fix-medium-severity-mfa-bypass-issue-8r36hn
Closed

Endurecer MFA: logout borra mfa_trusted y recuerdo de dispositivo administrable#16
AtlasLabs797 wants to merge 1 commit into
V-01.08from
codex/fix-medium-severity-mfa-bypass-issue-8r36hn

Conversation

@AtlasLabs797
Copy link
Copy Markdown
Owner

Motivation

  • Corregir una regresión de seguridad que dejaba la cookie mfa_trusted activa tras POST /api/auth/logout, permitiendo omitir MFA en ese navegador hasta 90 días. Esta corrección se asocia a la versión V-01.07.
  • Dar control al administrador sobre el comportamiento de "recordar dispositivo" y reducir la ventana de confianza por defecto para minimizar la superficie de ataque.

Description

  • Restauré la eliminación de la cookie mfa_trusted en el endpoint POST /api/auth/logout para revocar el bypass MFA en el cliente (AuthController.cs).
  • Reemplacé el valor hardcodeado de 90 días por una política administrable: agregué lectura de mfa_remember_device_enabled y mfa_remember_days en AuthService y solo emito el token de dispositivo confiable si la opción está habilitada; el valor por defecto es 62 días y se clampa a 1..180 (AuthService.cs).
  • Exposé los nuevos campos en la API de configuración (GET/PUT /api/configuracion) y en los DTOs (ConfiguracionController.cs, ConfiguracionDtos.cs) y añadí valores seed seguros (false, 62) en SeedData.cs.
  • Actualicé pruebas unitarias para reflejar el nuevo comportamiento seguro: AuthControllerTests (logout borra mfa_trusted) y AuthServiceTests (ajustado el umbral de expiración a ~62 días). También registré el cambio en Documentacion/DOCUMENTACION_CAMBIOS.md.

Testing

  • Se actualizaron los tests unitarios AuthControllerTests y AuthServiceTests para validar la nueva lógica y la ventana por defecto.
  • Intenté ejecutar los tests focalizados con dotnet test --filter "FullyQualifiedName~AuthControllerTests|FullyQualifiedName~AuthServiceTests", pero el entorno de ejecución donde se hizo la modificación no tiene instalado dotnet (No such file or directory), por lo que las pruebas no se ejecutaron aquí.
  • Validación estática del cambio y ajustes en los DTOs/seed y la actualización de Documentacion/DOCUMENTACION_CAMBIOS.md completadas; los tests están listos para ejecutarse en CI o en un entorno con SDK .NET disponible.

Codex Task

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant