ترجمة آلية لم تُراجَع بعد. النص الإنجليزي هو المرجع في حال الاختلاف.
الملخص
Daptin هو نظام إدارة محتوى بلا واجهة رسومية GraphQL/JSON-API. قبل الإصدار 0.12.26، يمرر LanguageMiddleware العالمي في server/language.go رأس Accept-Language الخام من LanguageMiddlewareFunc عبر GetLanguagePreference إلى golang.org/x/text/language.ParseAcceptLanguage بدون مرشح الحجم أو الشكل. يحسب الحماية لـ CVE-2022-32149 الشرطات ولكن ليس الشرطات السفلية، على الرغم من أن المحلل الداخلي تطبيع الشرطات السفلية إلى شرطات. تتجاوز القوائم الطويلة من لغات فرعية مفصولة بشرطة سفلية أطول من ثمانية أحرف الحماية. تفشل هذه اللغات الفرعية في فحص الطول len <= 8 في golang.org/x/text/internal/language/parse.go، مما يتسبب في عمليات gobble متكررة لنقل المخزن المؤقت المتبقي بالكامل عبر runtime.memmove. مع وجود العديد من اللغات الفرعية غير الصالحة، يستغرق نقل المخزن المؤقت المتكرر هذا عملاً تربيعياً. يمكن الطلبات دون مصادقة إلى صفحة الهبوط العامة أو /api استهلاك وحدة معالجة مركزية غير متناسبة، مع رأس 256 كيلو بايت يسبب بالفعل ثوانٍ من المعالجة وإدخال أكبر مسموح به بواسطة الحد الأقصى الافتراضي لرأس 1 ميجا بايت. يسجل resource.CheckErr أيضاً الرأس غير الصالح بأكمله، مما يضخم التكلفة، بينما يمكن للاستجابات HTTP الناجحة العادية إخفاء حركة مرور حجب الخدمة. يمكن للطلبات المتكررة تشبع وحدة المعالجة المركزية للخادم. تم إصلاح هذه المشكلة في الإصدار 0.12.26.