ترجمة آلية لم تُراجَع بعد. النص الإنجليزي هو المرجع في حال الاختلاف.
الملخص
أداة Refitter هي أداة لتوليد عميل واجهة برمجة تطبيقات REST بلغة C# باستخدام مكتبة Refit. قبل الإصدار 2.1.2، يتم تضمين مفاتيح نوع المحتوى في خرائط محتوى `requestBody/responses` بحرفية داخل سلسلة سمات Refit الخاصة بـ `[Headers("Accept: <ct>", "Content-Type: <ct>")]` دون الهروب من علامات التنصيص. يمكن لمفتاح نوع محتوى مصمم في وصف OpenAPI متأثر بالمهاجم اجتياز التحقق الافتراضي دون `--skip-validation`، والكسر خارج سلسلة السمات والواجهة ومساحة الأسماء المحيطة، ويمكنه تقديم فئة ملف من المستوى الأعلى مع ترك كود C# صالحًا مولدًا. تقوم طريقة `[ModuleInitializer]` في تلك الفئة بتنفيذ شيفرة المهاجم عند تحميل التجميع المُولَّد عند بدء تشغيل التطبيق، دون الحاجة إلى استدعاء العميل. تم التحقق من السلوك باستخدام Refitter 2.0.0 و .NET 8. تم إصلاح هذه المشكلة في الإصدار 2.1.2.
المعالجة
المراجع
- مرجعhttps://github.com/christianhelle/refitter/security/advisories/GHSA-p32v-8v8j-j534
- مرجعhttps://github.com/christianhelle/refitter/pull/1178
- مرجعhttps://github.com/christianhelle/refitter/commit/ab4d8e439d6f0ee82ad49ee15323978d70fe5a67
- مرجعhttps://github.com/christianhelle/refitter/releases/tag/2.1.2
- مرجعhttps://github.com/user-attachments/files/29394848/reproduce.sh
- مرجعhttps://github.com/user-attachments/files/29394851/maintainer-report.txt
- مرجعhttps://github.com/user-attachments/files/29394853/make_spec.py