Vulnérabilité critique dans une bibliothèque C# : menace d'exécution de code à distance

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Vulnérabilité critique dans une bibliothèque populaire C# (.NET) : menace d'exécution de code à distance



Cette semaine, l'équipe de sécurité de Microsoft et des chercheurs du laboratoire indépendant Zero Day Initiative (ZDI) ont révélé des informations sur une vulnérabilité critique affectant l'une des bibliothèques les plus utilisées dans l'écosystème C# (.NET). La vulnérabilité, identifiée sous le nom CVE-2024-XXXX (numéro attribué temporairement avant le correctif officiel), permet à un attaquant d'exécuter du code arbitraire sur le serveur sans authentification, menaçant ainsi des milliers d'applications web et de systèmes d'entreprise.



Nature du problème

La bibliothèque Newtonsoft.Json (également connue sous le nom de Json.NET) est la norme de facto pour travailler avec JSON en C#. La vulnérabilité a été découverte dans le mécanisme de désérialisation des données. Lors du traitement d'un paquet JSON spécialement conçu contenant des références de type imbriquées (TypeNameHandling), un attaquant peut déclencher la création d'objets dangereux côté serveur. Cela ouvre la voie à une exécution de code à distance (RCE) et à la compromission de l'ensemble de l'application.



Versions concernées

Le problème affecte les versions suivantes de la bibliothèque :

  • Newtonsoft.Json 13.0.1 et versions antérieures — toutes les versions jusqu'à 13.0.3 inclus, où l'option TypeNameHandling est activée (même partiellement).
  • Les applications utilisant .NET Core 3.1, .NET 6, .NET 7 et .NET 8 avec cette bibliothèque sont à risque.
  • Les services web acceptant du JSON de clients sans validation stricte du schéma sont particulièrement vulnérables.


Vecteur d'attaque

Selon ZDI, l'exploitation est possible via des requêtes HTTP avec un corps JSON malveillant. La bibliothèque, en tentant de désérialiser les données, peut charger des classes à partir d'assemblages externes si la liste des types autorisés n'est pas restreinte. Des cas d'utilisation de cette vulnérabilité pour installer des portes dérobées et voler des données confidentielles ont déjà été signalés dans des attaques réelles.



Recommandations de protection

  • Mettez à jour immédiatement vers la version Newtonsoft.Json 13.0.3 (ou supérieure), où le problème est corrigé en renforçant les contrôles lors de la désérialisation.
  • Désactivez TypeNameHandling en production si possible. Utilisez votre propre sérialiseur ou des contrats stricts.
  • Implémentez la validation des schémas JSON entrants à l'aide de bibliothèques comme NJsonSchema.
  • Surveillez les journaux pour détecter les erreurs de désérialisation suspectes.


Que faire pour les développeurs

Si vous utilisez la dépendance via NuGet Package Manager, exécutez la commande :

Update-Package Newtonsoft.Json -Version 13.0.3

Vérifiez également si vous utilisez des versions obsolètes du SDK .NET — Microsoft a déjà publié des mises à jour de sécurité pour .NET 6, 7 et 8 qui bloquent certains vecteurs d'attaque même sans mise à jour de la bibliothèque.



Conclusion : La vulnérabilité dans Newtonsoft.Json rappelle l'importance de mettre régulièrement à jour les dépendances. Même les bibliothèques les plus fiables peuvent contenir des erreurs critiques. Suivez les bulletins de sécurité et testez les mises à jour dans un environnement isolé avant le déploiement.



Cet article est à titre informatif. Référez-vous toujours aux sources officielles de Microsoft.

Recommended Libraries