La faille CVE-2026-40372 dans le composant Data Protection d'ASP.NET Core permet à un attaquant non authentifié de falsifier des cookies d'authentification et de prendre le contrôle d'une application web. Le risque concerne uniquement les systèmes macOS et Linux.

Ce que peut faire un attaquant avec CVE-2026-40372
La faille a une sévérité CVSS de 9.1, le niveau maximum pour une faille d'élévation de privilèges. Elle affecte les versions 10.0.0 à 10.0.6 du package NuGet Microsoft.AspNetCore.DataProtection. ASP.NET Core est un framework web open-source et multiplateforme utilisé pour construire des sites et des API. Le composant Data Protection sécurise les données sensibles comme les cookies de session et les jetons d'authentification.
La cause est une erreur de validation HMAC dans ManagedAuthenticatedEncryptor. Le code calcule une empreinte de sécurité sur les mauvais octets du payload, ce qui permet de contourner la vérification d'intégrité des données protégées.
Si les conditions sont réunies, un attaquant peut :
- Falsifier des cookies d'authentification pour se connecter en tant qu'administrateur.
- Escalader ses privilèges jusqu'au niveau SYSTEM sur le serveur.
- Lire ou modifier des fichiers sur le système compromis.
- Déchiffrer des jetons protégés comme les jetons antiforgery ou les états OpenID Connect.

Trois conditions cumulatives rendent une application vulnérable : elle doit utiliser une version affectée du package NuGet, cette copie doit être chargée au runtime, et elle doit tourner sur un système non-Windows. La menace est théorique à ce stade : aucune exploitation active n'est signalée et aucun proof-of-concept n'est public. Microsoft a publié le correctif hors cycle le 22 avril 2026, une pratique rare qui indique l'urgence de la situation.
Pourquoi seulement les systèmes non-Windows ?
La différence tient à l'implémentation cryptographique. Sur Windows, .NET utilise le chemin natif CNG (Cryptography Next Generation), qui n'est pas affecté. Sur macOS et Linux, le framework utilise une implémentation managée en C# (ManagedAuthenticatedEncryptor), qui contient le bogue. Les applications hébergées sur des serveurs Linux, courants dans les environnements cloud modernes ou les conteneurs Docker, sont les plus exposées.
Mettez à jour immédiatement et révoquez vos clés
La première étape est la mise à jour du package NuGet Microsoft.AspNetCore.DataProtection vers la version 10.0.7. Vous devez ensuite rebulider et redéployer votre application. Si vous utilisez une application auto-contenue (self-contained) ou une compilation AOT (Ahead-of-Time), vous devez impérativement la rebulilder contre la nouvelle version 10.0.7. Le simple remplacement du fichier binaire ne suffit pas.
Mettre à jour le code ne suffit pas. Vous devez aussi révoquer toutes les anciennes clés de protection des données. Utilisez la méthode RevokeAllKeys pour marquer toutes les clés existantes comme révoquées. Le système générera automatiquement une nouvelle clé pour les futurs jetons. Cette rotation est essentielle pour empêcher un attaquant d'utiliser des jetons signés avec une ancienne clé compromise avant la mise à jour. Après la rotation, les utilisateurs devront se reconnecter, mais leurs anciens jetons seront invalides.

Le CERT Santé français a publié un avertissement le 22 avril 2026 concernant cette CVE. Si votre application utilise une base de données pour stocker les clés de protection, assurez-vous que la base est accessible et que la rotation a bien été prise en compte.
Cette faille s'ajoute à d'autres alertes récentes pour les hébergeurs web, comme la faille cPanel CVE-2026-41940. Elle illustre l'importance de suivre les mises à jour de sécurité, notamment pour les composants critiques comme le stockage de clés, un sujet déjà sensible lors des failles Storm-0558 sur le cloud Microsoft.