كشف خبراء الأمن السيبراني عن ثغرة أمنية خطيرة قد تعرض مستودعات حزم بايثون لمخاطر اختراق، وذلك بسبب استخدام نصوص برمجية قديمة تدعم عمليات تحميل حزم غير آمنة. وتبرز هذه الثغرات أهمية التدقيق المستمر للأدوات البرمجية المستخدمة في تطوير البرمجيات.
تتمثل المشكلة الرئيسية في نصوص برمجية قديمة ترتبط بأداة zc.buildout، والتي تستخدم لأتمتة إعداد بيئات التطوير وتثبيت التبعيات. تحتوي هذه النصوص على إشارات ثابتة لمواقع خارجية لم تعد تحت سيطرة مطوريها الأصليين، مما يفتح الباب أمام استغلالها.
تاريخياً، كانت هذه النصوص تجلب حزمة distribute من نطاق python-distribute[.]org. لكن هذا النطاق مهجور منذ عام 2014، وهو متاح للشراء حالياً. وإذا تمكن جهات خبيثة من الاستحواذ على هذا النطاق، فبإمكانها توفير شفرات برمجية خبيثة يتم تحميلها وتنفيذها آلياً من قبل أي مطور يستخدم هذه النصوص البرمجية المخترقة.
هذا السيناريو يمثل تهديداً مباشراً لسلسلة إمداد تطوير البرمجيات، حيث يمكن تجاوز إجراءات الأمان القياسية بسهولة.
مخاطر شفرات بايثون القديمة ونطاق الاستغلال
تم اكتشاف هذه الثغرة من قبل محللي الأمن السيبراني في Reversinglabs، مشيرين إلى أنها تؤثر على بعض الحزم المعروفة مثل slapos.core، و pypiserver، و tornado. ورغم انتقال العديد من المطورين إلى معايير تحديث الحزم، إلا أن هذه الملفات القديمة غالباً ما تظل موجودة في المستودعات.
من جهة أخرى، لا يتم تفعيل الثغرة عند إجراء عملية تثبيت عادية باستخدام pip. بل تتطلب عادةً تشغيلاً يدوياً أو استدعاءً عبر عملية بناء مثل Makefile. وعند تفعيلها، تثق النصوص بالنص الخارجي بشكل أعمى، مما ينشئ خطراً كبيراً في سلسلة الإمداد.
آلية التنفيذ والاستغلال
يكمن الجوهر التقني لهذه الثغرة في الطريقة غير الآمنة التي تتعامل بها النصوص البرمجية مع تحديد التبعيات. يتحقق منطق الكود بشكل خاص من وجود حزمة distribute.
إذا لم يتم العثور عليها، تبدأ النص البرمجي بعملية تحميل باستخدام مكتبات urllib المضمنة في بايثون. كما يوضح الرسم البياني، يتم جلب وتنفيذ إعداد distribute في ملف bootstrap.py؛ حيث تطلب النصوص صراحةً المحتوى من النطاق python-distribute[.]org الذي لم يعد فعالاً.
الأهم من ذلك، أن الاستجابة من هذا العنوان تُمرر مباشرة إلى دالة exec()، والتي تقوم بتشغيل الشفرة فوراً دون أي فحوصات سلامة أو تحقق من التوقيع.
برهان المفهوم (Proof-of-Concept)
للتحقق من هذا السيناريو، قام الباحثون بصياغة برهان مفهوم للاستغلال يستهدف slapos.core. يعمل هذا البرهان عن طريق معالجة وسيطات سطر الأوامر لإجبار النص البرمجي على مسار التحميل المعرض للخطر. ونتيجة الإخراج بعد تشغيل النص البرمجي تؤكد أن النص يتصل بنجاح بالنطاق الخارجي، مثبتًا أن أي شفرة مستضافة هناك ستعمل بكامل صلاحيات المستخدم.

