Résumé
Notre équipe de recherche en sécurité a identifié que la vulnérabilité récemment divulguée CVE-2025-24070une vulnérabilité d'élévation de privilèges dans ASP.NET Core, affecte également les applications .NET 6 bien qu'elle ne soit pas mentionnée dans l'avis de sécurité officiel de Microsoft. Dans le cadre de notre programme Endless Lifecycle Support (ELS) pour .NET 6, qui fournit des correctifs de fin de vie à long terme, nous avons analysé cette vulnérabilité de manière approfondie et développé un correctif qui résout ce problème pour nos clients qui fonctionnent encore sur cette plateforme.
Comprendre la vulnérabilité
CVE-2025-24070 est classée comme une vulnérabilité de haute sévérité (CVSS v3 score : 7.0) qui existe dans les applications ASP.NET Core. La vulnérabilité est centrée sur la fonction RefreshSignInAsync qui pourrait permettre à un attaquant d'usurper l'identité d'un autre utilisateur, ce qui entraînerait une élévation non autorisée des privilèges.
Plus précisément, cette vulnérabilité permet à un attaquant d'appeler la commande RefreshSignInAsync et de passer un paramètre utilisateur différent de celui actuellement authentifié, ASP.NET Core acceptant cette requête. Cette faille de sécurité présente un potentiel d'exploitation à distance et pourrait conduire à des failles de sécurité importantes dans les applications affectées.
Versions concernées
L'avis de Microsoft mentionne explicitement ASP.NET Core 9.0, ASP.NET Core 8.0 et ASP.NET Core 2.3 comme étant les versions concernées, puisqu'il s'agit des versions actuellement prises en charge officiellement par Microsoft. Notre enquête confirme que les applications .NET 6 sont également vulnérables.
Les versions affectées officiellement documentées sont les suivantes
- ASP.NET Core 9.0.2 et versions antérieures
- ASP.NET Core 8.0.13 et versions antérieures
- ASP.NET Core 2.3.0 et versions antérieures
Notre ajoutLes applications .NET 6 à l'aide des composants ASP.NET Core Identity
Détails techniques
La vulnérabilité se trouve dans le mécanisme d'authentification d'ASP.NET Core, plus précisément dans la fonction SignInManager lors de la gestion de la fonction RefreshSignInAsync . La vulnérabilité permet à la méthode RefreshSignInAsync d'accepter un paramètre utilisateur qui ne correspond pas à l'utilisateur actuellement authentifié.
Dans des circonstances normales, l'actualisation d'une connexion ne devrait fonctionner que pour l'utilisateur actuellement authentifié. Cependant, en raison d'une validation insuffisante, un attaquant pourrait :
- Obtenir une session d'authentification valide
- Appeler RefreshSignInAsync avec des paramètres pour un compte utilisateur différent
- Élever avec succès leurs privilèges à ceux du compte spécifié
Le correctif mis en place par Microsoft pour les versions prises en charge modifie la fonction RefreshSignInAsync pour valider que l'ID utilisateur du paramètre utilisateur fourni correspond à l'ID utilisateur de l'utilisateur actuellement authentifié. Si ce n'est pas le cas, l'opération échoue silencieusement (dans les versions corrigées) ou lève une exception (dans les versions plus récentes).
Notre solution pour les utilisateurs de .NET 6
Dans le cadre de notre engagement à fournir un support de cycle de vie sans fin pour .NET 6, nous avons.. :
- Développement d'un correctif de sécurité qui apporte la même protection aux applications .NET 6
- Ce correctif a fait l'objet de tests approfondis afin d'en garantir la sécurité et la compatibilité.
- Il a été mis immédiatement à la disposition de tous nos clients dans le cadre de notre plan d'assistance.
Notre correctif met en œuvre les mêmes contrôles de sécurité que ceux ajoutés par Microsoft aux versions prises en charge, en veillant à ce que RefreshSignInAsync ne puisse rafraîchir la connexion que pour l'utilisateur actuellement authentifié. Ceci est d'autant plus important que .NET 6 et .NET 7 ont déjà atteint leur fin de vie et que les mises à jour de sécurité officielles de Microsoft ne sont plus disponibles pour ces applications.
Actions recommandées
Si vous utilisez des applications .NET 6, nous vous recommandons vivement de prendre les mesures suivantes :
- Appliquez immédiatement notre correctif de sécurité pour se protéger contre une exploitation potentielle
- Vérifiez le code d'authentification de votre application, en particulier toutes les implémentations personnalisées qui impliquent RefreshSignInAsync
- Mettre en place un système de journalisation approprié pour détecter les tentatives d'exploitation potentielles
Comment obtenir le correctif
Les clients inscrits à notre programme Endless Lifecycle Support peuvent télécharger le correctif de sécurité depuis notre dépôt. La mise à jour peut être appliquée avec un temps d'arrêt minimal et ne nécessite pas de modification du code de l'application.
Vous n'êtes pas encore client ? Vous pouvez en savoir plus sur notre Endless Lifecycle Support for legacy .NET ici.
Réflexions finales
Cette découverte souligne l'importance d'une prise en charge étendue des cadres de travail qui ont atteint la fin de vie de leurs fournisseurs, mais qui restent largement utilisés. Notre équipe de recherche en sécurité reste vigilante et identifie les vulnérabilités qui affectent toutes les versions de .NET, quel que soit leur statut de support officiel.
En fournissant des correctifs de sécurité pour .NET 6, nous aidons les organisations à maintenir des opérations sécurisées tout en planifiant leur stratégie de migration à un rythme qui se justifie d'un point de vue commercial.
CVE-2025-24070 | CVSS v3 Score : 7.0 (High) | 25 mars 2025

