En bref

  • CVE-2026-40372 (CVSS 9.1) : vérification défaillante des signatures cryptographiques dans ASP.NET Core DataProtection, permettant l'élévation de privilèges jusqu'à SYSTEM via cookies forgés.
  • Versions affectées : Microsoft.AspNetCore.DataProtection 10.0.0 à 10.0.6 ; correctif dans la 10.0.7 publiée en out-of-band le 21 avril 2026.
  • Rotation obligatoire du key ring DataProtection après patching : les tokens signés pendant la fenêtre vulnérable restent légitimement signés et survivent au correctif.

Les faits

Le 21 avril 2026, Microsoft a publié une mise à jour de sécurité out-of-band pour ASP.NET Core corrigeant CVE-2026-40372, une vulnérabilité d'élévation de privilèges critique notée CVSS 9.1. Le bulletin officiel Microsoft, relayé via GitHub dotnet/announcements issue 395, qualifie la faille de Improper verification of cryptographic signature in ASP.NET Core et indique qu'elle permet à un attaquant non authentifié d'élever ses privilèges via le réseau. L'analyse technique publiée par CyCognito et SOC Prime précise que le bug réside dans la routine de vérification HMAC du managed authenticated encryptor de la librairie Data Protection : une comparaison défectueuse permet à un attaquant de soumettre une payload forgée que l'application accepte comme légitimement signée. En pratique, cela permet la forge de cookies d'authentification et d'antiforgery tokens, ouvrant la voie à une prise de contrôle SYSTEM sur les applications ASP.NET Core hébergées sur Windows.

La régression introduisant la faille est présente dans les versions 10.0.0 à 10.0.6 du package NuGet Microsoft.AspNetCore.DataProtection ; le correctif est livré dans la version 10.0.7. BleepingComputer et Security Affairs rapportent que Microsoft a choisi la publication hors cycle en raison de la criticité, bien que la faille soit classée Important dans la terminologie Microsoft plutôt que Critical, une distinction qui ne reflète pas le score CVSS réel. eSecurity Planet et l'Université de York (UIT) relaient le bulletin à destination de leurs administrateurs. Aucune exploitation active n'est rapportée au 23 avril 2026, mais l'écriture d'un exploit à partir du correctif est jugée réaliste par plusieurs équipes de recherche en raison de la simplicité du défaut sous-jacent.

Impact et exposition

ASP.NET Core Data Protection est utilisé par défaut dans toutes les applications ASP.NET Core pour protéger les cookies d'authentification, les antiforgery tokens, les jetons OAuth stockés, les TempData et divers secrets applicatifs. Un attaquant exploitant CVE-2026-40372 peut forger un cookie de session administrateur et obtenir un accès immédiat à l'application cible. Sur un serveur IIS ou Kestrel exécuté sous le compte SYSTEM ou un compte de service privilégié, la compromission débouche sur une prise de contrôle totale de l'hôte. Les applications multi-tenants et les passerelles d'API utilisant Data Protection pour signer des tokens inter-services sont particulièrement exposées, car un seul cookie forgé peut pivoter vers plusieurs services en aval.

Recommandations immédiates

  • Mettre à jour sans délai vers Microsoft.AspNetCore.DataProtection 10.0.7 via NuGet, puis redéployer l'ensemble des applications ASP.NET Core concernées.
  • Après patching, appeler IKeyManager.RevokeAllKeys() pour invalider l'ensemble du key ring Data Protection : les tokens émis pendant la fenêtre vulnérable restent valides malgré le correctif.
  • Forcer la réauthentification de tous les utilisateurs en invalidant les sessions actives côté application et en rotant les cookies d'authentification.
  • Passer en revue les logs d'authentification IIS/Kestrel depuis la date d'installation de la version 10.0.0 à la recherche de sessions anormales, de privilèges administrateurs utilisés par des comptes inattendus, ou de tokens antiforgery rejetés en masse (signal d'une tentative de forge).

⚠ Patch insuffisant sans rotation

Contrairement à la majorité des correctifs, appliquer 10.0.7 ne suffit pas : les clés Data Protection déjà compromises restent exploitables. La rotation complète du key ring via RevokeAllKeys est une étape obligatoire de la remédiation, sous peine de laisser une porte dérobée persistante exploitable à distance.

À retenir

Les failles cryptographiques dans les frameworks web ont une surface d'impact massive : chaque cookie et token émis devient potentiellement forgeable. Un plan de réponse à incident pour ASP.NET Core doit toujours inclure la rotation du key ring en parallèle du patching applicatif.

Comment savoir si je suis vulnérable ?

Inspectez le fichier de projet .csproj ou exécutez dotnet list package pour vérifier la version installée de Microsoft.AspNetCore.DataProtection. Toute version comprise entre 10.0.0 et 10.0.6 est vulnérable. Vérifiez également les dépendances transitives via dotnet list package --include-transitive, car DataProtection est souvent tiré indirectement par Microsoft.AspNetCore.App. Seule la 10.0.7 ou supérieure intègre la correction.

Faut-il vraiment révoquer toutes les clés ?

Oui, impérativement. Microsoft recommande explicitement RevokeAllKeys après upgrade car tout token émis pendant la fenêtre vulnérable a été légitimement signé par la clé compromise et reste accepté par l'application même après patch. L'opération déclenche une réauthentification de tous les utilisateurs mais ferme définitivement la voie aux tokens forgés en amont.

Les failles cryptographiques dans les frameworks web récurrentes font écho à CVE-2026-40575 sur OAuth2 Proxy et à CVE-2026-3055 Citrix NetScaler SAML. Pour un contexte élargi sur les vulnérabilités Microsoft récentes, consultez CVE-2026-33827 Windows TCP/IP IPv6 et CVE-2026-33826 Active Directory RPC.

Votre infrastructure est-elle exposée ?

Ayi NEDJIMI réalise des audits ciblés pour identifier et corriger vos vulnérabilités.

Demander un audit