Resumen ejecutivo
Nuestro equipo de investigación de seguridad ha identificado que la vulnerabilidad recientemente divulgada CVE-2025-24070una vulnerabilidad de elevación de privilegios en ASP.NET Core, también afecta a las aplicaciones .NET 6 a pesar de no mencionarse en el aviso de seguridad oficial de Microsoft. Como parte de nuestro programa Endless Lifecycle Support (ELS) para .NET 6, que ofrece parches de fin de ciclo de vida a largo plazo, hemos analizado a fondo esta vulnerabilidad y hemos desarrollado un parche que soluciona este problema para nuestros clientes que aún operan en esta plataforma.
Comprender la vulnerabilidad
CVE-2025-24070 está clasificada como una vulnerabilidad de gravedad alta (puntuación CVSS v3: 7,0) que existe en aplicaciones ASP.NET Core. La vulnerabilidad se centra en el método RefreshSignInAsync que podría permitir a un atacante hacerse pasar por la cuenta de otro usuario, dando lugar a una elevación no autorizada de privilegios.
En concreto, esta vulnerabilidad permite a un atacante llamar a RefreshSignInAsync y pasar un parámetro de usuario diferente al autenticado actualmente, con ASP.NET Core aceptando esta solicitud. Este fallo de seguridad presenta potencial para la explotación remota y podría dar lugar a importantes brechas de seguridad en las aplicaciones afectadas.
Versiones afectadas
El aviso de Microsoft menciona explícitamente ASP.NET Core 9.0, ASP.NET Core 8.0 y ASP.NET Core 2.3 como las versiones afectadas, ya que son las versiones que actualmente soportan oficialmente. Nuestra investigación confirma que las aplicaciones .NET 6 son igualmente vulnerables.
Las versiones afectadas documentadas oficialmente son:
- ASP.NET Core 9.0.2 y versiones anteriores
- ASP.NET Core 8.0.13 y versiones anteriores
- ASP.NET Core 2.3.0 y versiones anteriores
Nuestra adición: aplicaciones .NET 6 que utilizan los componentes ASP.NET Core Identity
Detalles técnicos
La vulnerabilidad se encuentra en el mecanismo de autenticación de ASP.NET Core, concretamente en el módulo SignInManager cuando se maneja el comando RefreshSignInAsync . La vulnerabilidad permite que el método RefreshSignInAsync acepte un parámetro de usuario que no coincida con el usuario autenticado actualmente.
En circunstancias normales, actualizar un inicio de sesión sólo debería funcionar para el usuario autenticado en ese momento. Sin embargo, debido a una validación insuficiente, un atacante podría:
- Obtener una sesión de autenticación válida
- Llamar a RefreshSignInAsync con parámetros para una cuenta de usuario diferente
- Elevar con éxito sus privilegios a los de la cuenta especificada
El parche implementado por Microsoft para las versiones compatibles modifica la función RefreshSignInAsync para validar que el ID de usuario del parámetro de usuario suministrado coincide con el ID de usuario del usuario autenticado actualmente. Si no coinciden, la operación falla silenciosamente (en las versiones con parche) o lanza una excepción (en las versiones más recientes).
Nuestra solución para usuarios de .NET 6
Como parte de nuestro compromiso de ofrecer asistencia técnica durante todo el ciclo de vida de .NET 6, hemos:
- Desarrollado un parche de seguridad que ofrece la misma protección a las aplicaciones .NET 6
- Este parche se ha probado a fondo para garantizar tanto la seguridad como la compatibilidad.
- Disponible de inmediato para todos los clientes de nuestro plan de asistencia.
Nuestro parche implementa las mismas comprobaciones de seguridad que Microsoft ha añadido a las versiones compatibles, garantizando que RefreshSignInAsync sólo pueda actualizar el inicio de sesión para el usuario autenticado en ese momento. Esto es especialmente importante dado que .NET 6 y .NET 7 ya han llegado al final de su vida útil, y las actualizaciones de seguridad oficiales de Microsoft ya no están disponibles para estas aplicaciones.
Medidas recomendadas
Si está ejecutando aplicaciones .NET 6, le recomendamos encarecidamente que tome las siguientes medidas:
- Aplique nuestro parche de seguridad inmediatamente para protegerse de posibles ataques
- Audite el código de autenticación de su aplicación, en particular cualquier implementación personalizada que implique RefreshSignInAsync
- Implementar un registro adecuado para detectar posibles intentos de explotación
Cómo obtener la solución
Los clientes inscritos en nuestro programa Endless Lifecycle Support pueden descargar el parche de seguridad de nuestro repositorio. La actualización puede aplicarse con un tiempo de inactividad mínimo y no requiere cambios en el código de la aplicación.
¿Aún no es cliente? Puede obtener más información sobre nuestro Soporte de ciclo de vida infinito para .NET heredado aquí.
Reflexiones finales
Este descubrimiento subraya la importancia de ampliar el soporte de los frameworks que han llegado al final de su vida útil por parte de sus proveedores, pero que siguen siendo de uso generalizado. Nuestro equipo de investigación de seguridad se mantiene alerta para identificar vulnerabilidades que afectan a todas las versiones de .NET, independientemente de su estado de soporte oficial.
Al proporcionar parches de seguridad para .NET 6, ayudamos a las organizaciones a mantener la seguridad de sus operaciones mientras planifican su estrategia de migración a un ritmo que tenga sentido para la empresa.
CVE-2025-24070 | Puntuación CVSS v3: 7.0 (Alta) | 25 de marzo de 2025

