ترجمة آلية لم تُراجَع بعد. النص الإنجليزي هو المرجع في حال الاختلاف.
الملخص
تقبل عائلة الدوال gettext في GNU C Library الإصدار 2.0 وما بعده مدخلات متغيّر البيئة LANGUAGE التي تحتوي على '/' أو التي تساوي ".."، ما لم يكن البرنامج مصممًا بخصائص setuid أو setgid (أي AT_SECURE). يمكن للمهاجم الذي يستطيع تعيين LANGUAGE في بيئة برنامج يستخدم gettext جعله يحمّل كتالوج رسائل (ملف .mo) من أي موقع اختياري في نظام الملفات. يمكن لملف .mo المصنوع إحداث انهيار للبرنامج من خلال إزاحات خارج النطاق، أو تقديم ترجمات لا تتوافق موجهات التنسيق فيها مع الوسائط الممررة بواسطة البرنامج. يتسبب ذلك في سلوك غير محدد في عائلة الدوال printf وقد يسمح بـ تنفيذ شيفرة عشوائية بصلاحيات البرنامج. يعتمد أمان كتالوجات الرسائل على تثبيتها في مواقع موثوقة للقراءة فقط، ويتخطى التخطي عبر الأدلة هذا الأمان. ينص الإصلاح الخاص بـ CVE-2014-0475 على رفض مكونات المسار ".." في أسماء الإعدادات المحلية الممررة إلى setlocale أو المأخوذة من متغيّرات البيئة LC_ALL و LC_* و LANG. يقرأ gettext متغيّر LANGUAGE مباشرةً ويضيف كل إدخال مفصول بنقطتين إلى دليل كتالوج الرسائل، لذا لم يغطِ هذا الإصلاح متغيّر LANGUAGE. يُستخدم LANGUAGE فقط عندما لا تكون إعدادات LC_MESSAGES المحلية هي "C" أو "C.<encoding>" أو "POSIX"، لذا يجب أن يكون المهاجم قادرًا أيضًا على تحديد إعدادات محلية مثبتة أخرى، على سبيل المثال من خلال LANG أو LC_ALL. يستلزم الاستغلال أيضًا قدرة المهاجم على وضع الملف المصنوع في موقع قابل للقراءة بواسطة البرنامج المستهدف، وأن تعبر البيئة حد الثقة دون أن يعمل البرنامج بصفة AT_SECURE. ومثال على ذلك خادم SSH الذي يقبل LANGUAGE و LANG من العملاء عبر توجيه AcceptEnv ويقيد الحساب بأمر إجباري؛ قد يستخدم المهاجم هذا للإفلات من القيد.