• 23/04/2026 19:30

Microsoft corrige de urgencia un fallo crítico en ASP.NET Core Data Protection (CVE-2026-40372)

Tiempo estimado de lectura: 3 minutos, 20 segundos

Microsoft ha lanzado una actualización fuera de banda para solucionar CVE-2026-40372, un fallo crítico en ASP.NET Core Data Protection que puede permitir la falsificación de cookies y tokens por una regresión criptográfica. La respuesta recomendada es actualizar a .NET 10.0.7, redeplegar, y valorar rotación del key ring e invalidación de tokens si hubo exposición durante la ventana vulnerable.

Entry image

La superficie de ataque de muchas aplicaciones web modernas depende de un supuesto básico: que los datos ‘protegidos’ por el framework, como cookies, estados de sesión o tokens auxiliares, no puedan falsificarse ni manipularse sin ser detectados. En ASP.NET Core, esa función la centraliza Data Protection, que se utiliza de forma transversal para asegurar múltiples piezas del flujo de autenticación y de la interacción usuario aplicación.

En este contexto, CVE-2026-40372 se ha publicado como una vulnerabilidad crítica de elevación de privilegios que afecta a Microsoft.AspNetCore.DataProtection en versiones 10.0.0 a 10.0.6. El problema nace de una regresión introducida en la rama de .NET 10: la lógica que genera y comprueba la etiqueta HMAC puede calcularla incorrectamente y, en determinados casos, llegar a descartar el hash calculado. El resultado práctico es un fallo de validación de integridad que permite que ciertos payloads manipulados superen las comprobaciones de autenticidad, abriendo la puerta a falsificación de payloads protegidos.

Esa capacidad es especialmente delicada porque Data Protection se usa en elementos como cookies de autenticación, antiforgery tokens, TempData, y el estado OIDC en flujos de inicio de sesión. En un escenario adverso, un atacante podría construir cookies o tokens que la aplicación aceptase como válidos y, a partir de ahí, escalar permisos. Se ha descrito incluso la posibilidad de llegar a privilegios SYSTEM mediante la falsificación de cookies de autenticación en entornos afectados. Además del riesgo de toma de control, el impacto incluye divulgación de ficheros y modificación de datos, sin que el foco principal esté en la disponibilidad del servicio.

La corrección ha llegado en forma de actualización fuera de banda, .NET 10.0.7, tras detectarse el problema por reportes de errores de descifrado en aplicaciones que habían instalado .NET 10.0.6. Un indicador operativo que puede aparecer en entornos impactados es un aumento de cierres de sesión y mensajes repetidos del tipo ‘The payload was invalid’, junto con señales en el grafo de dependencias que confirmen la carga de una versión vulnerable.

El alcance no es homogéneo en todas las plataformas. El impacto principal se concentra en Linux, macOS y otros sistemas no Windows. En Windows tiende a limitarse a escenarios concretos, por ejemplo cuando se fuerza el uso de algoritmos gestionados con UseCustomCryptographicAlgorithms. También hay matices importantes en cómo se consume la librería: existe una configuración secundaria afectada cuando se usa el asset net462 o netstandard2.0 del paquete Microsoft.AspNetCore.DataProtection entre 10.0.0 y 10.0.6, algo relevante para aplicaciones .NET Framework, bibliotecas netstandard2.0 o proyectos que no ejecutan net10.0. A la vez, hay casos en los que no se llega a cargar el binario vulnerable si en ejecución se utiliza el del shared framework de ASP.NET Core, dependiendo de cómo se haya referenciado Microsoft.AspNetCore.App y de comportamientos como PrunePackageReference en .NET 10.

La acción prioritaria es actualizar a .NET 10.0.7 o subir el paquete Microsoft.AspNetCore.DataProtection a 10.0.7, y después recompilar y redeplegar. Esto es clave en Docker y despliegues basados en imágenes, porque actualizar el runtime del host no basta si la dependencia vulnerable quedó embebida al construir la aplicación durante la ventana afectada.

Actualizar corrige la rutina de validación y hace que los payloads falsificados dejen de aceptarse, pero no resuelve por sí solo un matiz operativo: los tokens emitidos legítimamente durante la ventana vulnerable podrían seguir siendo válidos tras el parche si no se actúa sobre las claves. Si existe posibilidad de abuso en ese periodo, conviene rotar el key ring de ASP.NET Core Data Protection y invalidar o reemitir tokens que puedan persistir, como sesiones, refresh tokens, API keys o enlaces de restablecimiento de contraseña. Para una rotación controlada, puede usarse IKeyManager con RevokeAllKeys, o RevokeKey si se puede acotar qué claves estuvieron activas.

En paralelo, es recomendable confirmar si la aplicación está realmente expuesta. Se puede revisar qué versión se ha resuelto con dotnet list package, comprobar el PackageReference en el .csproj, y validar qué binario se carga en tiempo de ejecución. Como apoyo a la detección, se ha señalado un criterio claro: los payloads forjados durante la ventana vulnerable requieren necesariamente una HMAC con bytes a cero, lo que permite diseñar verificaciones posteriores.

Por último, merece atención la monitorización de tráfico y logs. La guía técnica compara el tipo de capacidad con MS10-070, asociada a condiciones de estilo padding oracle, que en la práctica pueden requerir muchas peticiones. Por ello, es prudente revisar telemetría buscando volúmenes sostenidos y patrones de variación de cookies o parámetros contra endpoints que acepten datos protegidos. Si se han protegido secretos de larga duración con IDataProtector.Protect, como cadenas de conexión o claves de terceros, deben tratarse como potencialmente divulgados si hubo exposición y proceder a su rotación.

Más información

La entrada Microsoft corrige de urgencia un fallo crítico en ASP.NET Core Data Protection (CVE-2026-40372) se publicó primero en Una Al Día.


Artículo de Hispasec publicado en https://unaaldia.hispasec.com/2026/04/microsoft-corrige-de-urgencia-un-fallo-critico-en-asp-net-core-data-protection-cve-2026-40372-2.html?utm_source=rss&utm_medium=rss&utm_campaign=microsoft-corrige-de-urgencia-un-fallo-critico-en-asp-net-core-data-protection-cve-2026-40372-2