Fickling is a Python pickling decompiler and static analyzer. Prior to version 0.1.7, both ctypes and pydoc modules aren't explicitly blocked. Even other existing pickle scanning tools (like picklescan) do not block pydoc.locate. Chaining these two together can achieve RCE while the scanner still reports the file as LIKELY_SAFE. This issue has been patched in version 0.1.7.
Fickling Python pickle decompiler versions prior to 0.1.7 contain a critical security bypass allowing remote code execution through chained exploitation of unblocked ctypes and pydoc.locate modules. Attackers can craft malicious pickle files that evade detection and are incorrectly classified as LIKELY_SAFE while achieving arbitrary code execution. Organizations using Fickling or similar pickle scanning tools for security validation are at risk of accepting malicious serialized Python objects.
تمثل هذه الثغرة خللاً أمنياً في آلية الفحص الثابت لأداة Fickling حيث لا يتم حظر وحدات ctypes و pydoc.locate بشكل صريح. يستغل المهاجمون هذا القصور من خلال ربط هاتين الوحدتين معاً لتحقيق تنفيذ أكواد عن بعد (RCE) بينما تقوم أداة الفحص بالإبلاغ عن الملف على أنه آمن محتمل (LIKELY_SAFE). تؤثر الثغرة على عمليات إلغاء التسلسل (deserialization) لكائنات Python وتشكل خطراً على الأنظمة التي تعتمد على Fickling أو أدوات مشابهة مثل picklescan للتحقق من سلامة الملفات. تم إصدار تصحيح في الإصدار 0.1.7 يعالج هذه المشكلة من خلال حظر صريح للوحدات الخطرة.
تحتوي أداة Fickling لفك تجميع ملفات Python pickle في الإصدارات السابقة للنسخة 0.1.7 على ثغرة أمنية حرجة تسمح بتنفيذ أكواد عن بعد من خلال استغلال متسلسل لوحدات ctypes و pydoc.locate غير المحظورة. يمكن للمهاجمين صياغة ملفات pickle خبيثة تتجاوز الكشف ويتم تصنيفها خطأً على أنها آمنة بينما تحقق تنفيذ أكواد تعسفية. المؤسسات التي تستخدم Fickling أو أدوات فحص pickle مماثلة للتحقق الأمني معرضة لخطر قبول كائنات Python متسلسلة خبيثة.
1. Immediately upgrade Fickling to version 0.1.7 or later across all systems and integrate updated security scanning into CI/CD pipelines to block exploitation of ctypes and pydoc.locate modules
2. Conduct comprehensive audit of all Python applications accepting pickle files, implement strict input validation, and consider replacing pickle with safer serialization formats like JSON or Protocol Buffers for untrusted data sources
3. Deploy runtime application self-protection (RASP) or enhanced monitoring to detect suspicious deserialization attempts, and establish incident response procedures for potential compromise of systems that processed pickle files before patching
1. الترقية الفورية لأداة Fickling إلى الإصدار 0.1.7 أو أحدث عبر جميع الأنظمة ودمج الفحص الأمني المحدث في خطوط CI/CD لحظر استغلال وحدات ctypes و pydoc.locate
2. إجراء مراجعة شاملة لجميع تطبيقات Python التي تقبل ملفات pickle، وتطبيق التحقق الصارم من المدخلات، والنظر في استبدال pickle بصيغ تسلسل أكثر أماناً مثل JSON أو Protocol Buffers لمصادر البيانات غير الموثوقة
3. نشر حماية ذاتية للتطبيقات في وقت التشغيل (RASP) أو مراقبة معززة لاكتشاف محاولات إلغاء التسلسل المشبوهة، وإنشاء إجراءات الاستجابة للحوادث للاختراق المحتمل للأنظمة التي عالجت ملفات pickle قبل التصحيح