العودة

ثغرة حرجة في مكتبة الصور Pillow تسمح بتنفيذ التعليمات البرمجية عبر اسم ملف EPS مُصمَّم
SiTech AI Team2 دقيقة قراءة

ثغرة حرجة في مكتبة الصور Pillow تسمح بتنفيذ التعليمات البرمجية عبر اسم ملف EPS مُصمَّم

تسمح ثغرة معالجة EPS في Pillow للمهاجمين بتنفيذ تعليمات برمجية عبر التحكم في اسم الملف؛ يؤثر CVE-2026-112900 على الإصدارات 2.6.0-12.3.0 وتم إصلاحه في 13.0.0 (16 أكتوبر). قم بالترقية ومنع تحميل ملفات EPS غير الموثوقة.

تفاصيل الثغرة

تحتوي Pillow، مكتبة الصور الأكثر استخداماً لـ Python، على ثغرة حرجة في معالجتها لـ EPS. عند فتح ملف EPS، تمرر Pillow اسم الملف إلى برنامج Ghostscript دون التحقق منه. يمكن للمهاجم الذي يتحكم في اسم الملف أن يتسبب في تفسير Ghostscript للاسم كأوامر، مما يؤدي إلى تنفيذ تعليمات برمجية عشوائية. يتم تتبع الثغرة كـ CVE-2026-112900 وتؤثر على إصدارات Pillow من 2.6.0 حتى 12.3.0. أصدر القائمون على الصيانة الإصدار 13.0.0 في 16 أكتوبر لمعالجة المشكلة.

تنص النشرة الاستشارية على أن الثغرة يتم تشغيلها بواسطة اسم الملف، وليس بواسطة أي شيء في مستند PostScript، مما يعني أن ملف EPS غير ضار يمكن أن يصبح خطيراً عند التلاعب بالاسم. لا يتم تشغيل الثغرة إلا على الأنظمة التي تم تثبيت برنامج gs عليها، وهو مطلوب لدعم EPS.

التأثير والنطاق

تُستخدم Pillow في نماذج تحميل الويب، وإنشاء الصور الرمزية والصور المصغرة، وخطوط أنابيب المستندات وPDF، ومعظم مشاريع تعلم الآلة. تقدر OX Security أن المكتبة يتم تنزيلها حوالي 436 مليون مرة شهرياً. يعد الإصدار 13.0.0 إصداراً أمنياً كبيراً يتضمن إصلاحات عبر أربعة مستويات خطورة، اثنان منها مصنفان على أنهما حرجان من قبل القائمين على الصيانة. يسجل سجل CVE ثغرة EPS عند 9.2 من 10، بينما يصنفها القائمون على الصيانة على أنها متوسطة لأن المهاجم يجب أن يتحكم في اسم الملف. لم يتم رصد أي استغلال لثغرة EPS في الواقع.

تعالج إصلاحات حرجة إضافية في نفس الإصدار خطأ إعادة استخدام الذاكرة بعد تغيير الوضع، واثنين من تجاوزات فك ترميز JPEG، وتجاوز مخزن TIFF طويل الأمد موجود منذ 2013. يمكن لتجاوز JPEG في تنسيق FlashPix تحقيق تنفيذ التعليمات البرمجية من خلال استدعاء واحد لـ Image.open عند تثبيت حزمة olefile الاختيارية. يحدث تجاوز TIFF عند حفظ TIFF مضغوط في مخزن مؤقت في الذاكرة مثل io.BytesIO، وهو نمط شائع للخدمات التي تعيد ترميز التحميلات.

خطوات التخفيف

قم بالترقية إلى Pillow 13.0.0 وأعد بناء أي حاويات، أو حزم wheel، أو صور أساسية تتضمن نسخة أقدم. أسقط Pillow 13 الدعم لـ Python 3.10، لذلك يجب على البيئات التي لا تزال على 3.10 الانتقال إلى Python 3.11 أو أحدث. أمر الترقية هو pip install -U "Pillow>=13.0.0".

إذا لم تكن الترقية الفورية ممكنة، فإن التخفيفات التالية تقلل المخاطر: ابقِ برنامج gs بعيداً عن المضيفين الذين يعالجون التحميلات غير الموثوقة ولا تمرر أبداً اسم ملف يتحكم فيه المهاجم إلى Image.open لملفات EPS؛ تجنب استخدام draft() و thumbnail() على صور JPEG غير موثوقة، أو استدعِ load() أولاً، أو مرر reducing_gap=None؛ اعتبر حفظ TIFF في مخزن مؤقت في الذاكرة عملية حساسة عندما تنشأ الصورة من مستخدم.

المصادر: The Hacker News

SiTech

SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي

نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.