ترجمة آلية لم تُراجَع بعد. النص الإنجليزي هو المرجع في حال الاختلاف.
الملخص
أداة Refitter هي أداة لتوليد عميل واجهة برمجة تطبيقات REST بلغة C# باستخدام مكتبة Refit. قبل الإصدار 2.1.2، يتم تضمين اسم معامل الرأس الموجود في `parameters[].name` مع الخاصية `in: header` بحرفية داخل سلسلة سمات Refit الخاصة بـ `[Header("<name>")]` دون الهروب من علامات التنصيص. يمكن لوصف OpenAPI المتأثر بالمهاجم اجتياز التحقق الافتراضي دون استخدام `--skip-validation` والكسر خارج موضع قائمة المعاملات عن طريق إغلاق بنية المعامل والدالة والسمة والواجهة ومساحة الأسماء. يمكن أن يظل الملف المُولَّد كود C# صالحًا بينما يحتوي على فئة ملف من المستوى الأعلى مع طريقة `[ModuleInitializer]`، والتي تنفذ شيفرة المهاجم عند تحميل التجميع المترجم عند بدء تشغيل التطبيق، حتى لو لم يتم استدعاء العميل أبداً. يتم الهروب من استعلام `AliasAs` ومواضع القيم الافتراضية أو التعداد؛ وهذا الخلل موجود في تضمين سلسلة سمات اسم الرأس. تم التحقق من السلوك باستخدام Refitter 2.0.0 و .NET 8. تم إصلاح هذه المشكلة في الإصدار 2.1.2.
المعالجة
المراجع
- مرجعhttps://github.com/christianhelle/refitter/security/advisories/GHSA-58x9-vjvp-6mx8
- مرجعhttps://github.com/christianhelle/refitter/pull/1178
- مرجعhttps://github.com/christianhelle/refitter/commit/63a19b03699a9c267d6fab5f758ec26484db83a1
- مرجعhttps://github.com/christianhelle/refitter/releases/tag/2.1.2
- مرجعhttps://github.com/user-attachments/files/29395048/maintainer-report.txt
- مرجعhttps://github.com/user-attachments/files/29395050/make_spec.py
- مرجعhttps://github.com/user-attachments/files/29395051/reproduce.sh