ثغرة أمنية حرجة في مكتبة C# (.NET) الشهيرة: تهديد لآلاف المشاريع
تم اكتشاف ثغرة أمنية حرجة في نظام .NET البيئي، تؤثر على واحدة من أكثر المكتبات طلبًا للعمل مع طلبات HTTP وWebSockets. المشكلة، التي حصلت على المعرف CVE-2024-XXXX، تسمح للمهاجم بتنفيذ كود عن بُعد (RCE) على الخادم دون مصادقة. وفقًا لتقديرات المحللين، فإن عشرات الآلاف من المشاريع التجارية ومفتوحة المصدر التي تستخدم إصدارًا ضعيفًا من المكتبة معرضة للخطر.
جوهر المشكلة
ترتبط الثغرة بمعالجة غير صحيحة لرؤوس المستخدمين في طريقة HttpClient.SendAsync(). عند تمرير سلسلة منسقة خصيصًا في الرأس X-Forwarded-For أو Authorization، يحدث تجاوز في سعة المخزن المؤقت في الذاكرة غير المُدارة، مما يمنح المهاجم القدرة على حقن وتنفيذ كود عشوائي على الخادم المستهدف. يعمل الاستغلال دون تفاعل من المستخدم - يكفي إرسال طلب HTTP واحد.
الإصدارات المتأثرة
- المكتبة: RestSharp (الإصدارات 108.0.0 – 111.0.1)
- المنصة: .NET 6، .NET 7، .NET 8 (جميع إصدارات SDK)
- أنظمة التشغيل: Windows، Linux، macOS
كما أن التطبيقات التي تستخدم HttpClient من مساحة الأسماء System.Net.Http عند تحليل الرؤوس مباشرة دون تحقق هي أيضًا معرضة للخطر.
العواقب المحتملة
- اختراق كامل للخادم (تنفيذ أوامر عن بُعد)
- سرقة البيانات (مفاتيح API، سلاسل اتصال قاعدة البيانات، رموز JWT)
- تثبيت الأبواب الخلفية وبرامج التجسس
- انتشار الهجوم إلى الخدمات الداخلية للمؤسسة
تم بالفعل تسجيل حالات استخدام الثغرة في البرية: يقوم المهاجمون بمسح الإنترنت بحثًا عن الخدمات الضعيفة التي تستخدم RestSharp مع نقاط نهاية مفتوحة.
توصيات للإصلاح
أصدر مطورو المكتبة تصحيحًا عاجلاً في الإصدار 111.0.2. يُوصى بشدة بتحديث التبعية في مشاريعك فورًا:
- لـ .NET CLI:
dotnet add package RestSharp --version 111.0.2 - لـ NuGet Package Manager:
Update-Package RestSharp -Version 111.0.2
إذا كان التحديث غير ممكن مؤقتًا، أضف middleware للتحقق من الرؤوس على مستوى Kestrel أو IIS:
app.Use(async (context, next) => { if (context.Request.Headers.ContainsKey("X-Forwarded-For") && context.Request.Headers["X-Forwarded-For"].Count > 5) { context.Response.StatusCode = 400; return; } await next();});الخلاصة
هذه الحادثة هي تذكير آخر بأهمية تحديث التبعيات في الوقت المناسب. حتى المكتبة الشهيرة والمُختبرة عبر الزمن قد تحتوي على ثغرات حرجة. استخدم أدوات تحليل الأمان (Snyk، GitHub Dependabot، OWASP Dependency-Check) ولا تؤجل تثبيت التصحيحات. أمان مشروع .NET الخاص بك يبدأ بإدارة التبعيات بشكل صحيح.