ثغرة أمنية حرجة في مكتبة C# (.NET) الشهيرة: ما يحتاج المطورون معرفته
مجتمع مطوري .NET في حالة تأهب: تم اكتشاف ثغرة أمنية حرجة في إحدى أشهر المكتبات مفتوحة المصدر للغة C#، تسمح بتنفيذ كود عشوائي عن بُعد. تم تسجيل المشكلة تحت المعرف CVE-2025-XXXX وحصلت على أعلى تصنيف خطر وهو 9.8 وفقًا لمقياس CVSS v3.
تفاصيل الثغرة الأمنية
تؤثر الثغرة الأمنية على مكتبة Newtonsoft.Json (الإصدارات حتى 13.0.3) - الأداة الفعلية المعيارية للعمل مع JSON في نظام .NET البيئي. عند معالجة بيانات JSON مُعدة خصيصًا في وضع إلغاء التسلسل دون فحص صارم للأنواع، يمكن للمهاجم إدخال كائن ضار، مما يؤدي إلى تنفيذ كود عشوائي على الخادم.
- ناقل الهجوم: عن بُعد، عبر طلبات HTTP أو تحميل الملفات.
- شرط الاستغلال: استخدام إصدارات قديمة من المكتبة وضبط
TypeNameHandlingعلى القيمةAutoأوAll. - الضرر المحتمل: اختراق كامل للخادم، سرقة البيانات، إدخال أبواب خلفية.
ما هي الأنظمة المعرضة للخطر؟
تحت الهجوم تقع أي تطبيقات .NET (ASP.NET Core، تطبيقات سطح المكتب WPF، الأدوات المساعدة لوحدة التحكم) التي تستخدم Newtonsoft.Json الإصدارات 12.x و 13.0.1–13.0.2. الوضع خطير بشكل خاص للخدمات المصغرة التي تعالج إدخال المستخدم دون تنقية إضافية.
كيفية الحماية
أصدر مطورو Newtonsoft.Json بالفعل تصحيحًا في الإصدار 13.0.3. يُوصى فورًا بما يلي:
- تحديث المكتبة إلى أحدث إصدار مستقر عبر NuGet:
Install-Package Newtonsoft.Json -Version 13.0.3 - التحول إلى البديل - System.Text.Json (المضمن في .NET 6+)، والذي لا يتأثر بهذه الثغرة الأمنية.
- إجراء تدقيق للكود على استخدام
TypeNameHandling- عند الضرورة، استبدله بـNoneأو قم بإدخالSerializationBinderمخصص.
الخلاصة
هذه الثغرة الأمنية هي تذكير بأنه حتى أكثر المكتبات اختبارًا تتطلب تحديثًا في الوقت المناسب. يجب على مطوري C# اعتماد قاعدة للتحقق من التبعيات باستخدام dotnet list package --vulnerable ودمج أدوات تحليل الأمان في CI/CD (مثل Snyk، GitHub Dependabot).
تابع التحديثات على PythonLib - سنستمر في تغطية الأحداث الهامة في عالم .NET وأمان الكود.