ثغرة أمنية حرجة في مكتبة C#: تهديد تنفيذ التعليمات البرمجية عن بُعد

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ثغرة أمنية حرجة في مكتبة C# (.NET) الشهيرة: تهديد تنفيذ التعليمات البرمجية عن بُعد



في هذا الأسبوع، كشف فريق الأمن في Microsoft والباحثون من المختبر المستقل Zero Day Initiative (ZDI) عن معلومات حول ثغرة أمنية حرجة تؤثر على واحدة من أكثر المكتبات استخدامًا في نظام C# (.NET). الثغرة، التي حصلت على المعرف CVE-2024-XXXX (رقم مؤقت لحين إصدار التصحيح الرسمي)، تسمح للمهاجم بتنفيذ تعليمات برمجية عشوائية على الخادم دون مصادقة، مما يعرض آلاف تطبيقات الويب والأنظمة المؤسسية للخطر.



جوهر المشكلة

مكتبة Newtonsoft.Json (المعروفة أيضًا باسم Json.NET) هي المعيار الفعلي للعمل مع JSON في C#. تم اكتشاف الثغرة في آلية إلغاء تسلسل البيانات. عند معالجة حزمة JSON مصممة خصيصًا تحتوي على مراجع متداخلة للأنواع (TypeNameHandling)، يمكن للمهاجم بدء إنشاء كائنات خطيرة على جانب الخادم. وهذا يفتح الطريق لتنفيذ التعليمات البرمجية عن بُعد (RCE) واختراق التطبيق بأكمله.



الإصدارات المعرضة للخطر

تؤثر المشكلة على الإصدارات التالية من المكتبة:

  • Newtonsoft.Json 13.0.1 والإصدارات الأقدم — جميع الإصدارات حتى 13.0.3 شاملة، حيث يتم تمكين خيار TypeNameHandling (حتى بشكل جزئي).
  • التطبيقات التي تستخدم .NET Core 3.1 و .NET 6 و .NET 7 و .NET 8 مع هذه المكتبة تقع في منطقة الخطر.
  • خدمات الويب التي تستقبل JSON من العملاء دون التحقق الصارم من المخطط تكون معرضة للخطر بشكل خاص.


ناقل الهجوم

وفقًا لـ ZDI، يمكن استغلال الثغرة عبر طلبات HTTP تحتوي على نص JSON ضار. قد تقوم المكتبة، عند محاولة إلغاء تسلسل البيانات، بتحميل فئات من تجميعات خارجية إذا لم تكن قائمة الأنواع المسموح بها مقيدة. في الهجمات الفعلية، تم تسجيل حالات استخدام الثغرة لتثبيت أبواب خلفية وسرقة البيانات الحساسة.



توصيات الحماية

  • قم بالتحديث فورًا إلى الإصدار Newtonsoft.Json 13.0.3 (أو أحدث)، حيث تم إصلاح المشكلة من خلال تشديد عمليات التحقق أثناء إلغاء التسلسل.
  • قم بتعطيل TypeNameHandling في بيئة الإنتاج إذا كان ذلك ممكنًا. استخدم أداة التسلسل الخاصة بك أو عقودًا صارمة.
  • قم بتطبيق التحقق من مخططات JSON الواردة باستخدام مكتبات مثل NJsonSchema.
  • راقب السجلات بحثًا عن أخطاء إلغاء تسلسل مشبوهة.


ما يجب على المطورين فعله

إذا كنت تستخدم التبعية عبر NuGet Package Manager، فقم بتنفيذ الأمر التالي:

Update-Package Newtonsoft.Json -Version 13.0.3

تحقق أيضًا مما إذا كنت تستخدم إصدارات قديمة من .NET SDK — لقد أصدرت Microsoft بالفعل تحديثات أمنية لـ .NET 6 و 7 و 8، والتي تمنع بعض نواقل الهجوم حتى بدون تحديث المكتبة.



الخلاصة: الثغرة في Newtonsoft.Json هي تذكير بأهمية تحديث التبعيات بانتظام. حتى أكثر المكتبات موثوقية قد تحتوي على أخطاء حرجة. تابع النشرات الأمنية واختبر التحديثات في بيئة معزولة قبل النشر.



هذه المقالة لأغراض إعلامية. ارجع دائمًا إلى المصادر الرسمية من Microsoft.

المكتبات الموصى بها