Fickling is a Python pickling decompiler and static analyzer. Fickling versions up to and including 0.1.6 do not treat Python’s runpy module as unsafe. Because of this, a malicious pickle that uses runpy.run_path() or runpy.run_module() is classified as SUSPICIOUS instead of OVERTLY_MALICIOUS. If a user relies on Fickling’s output to decide whether a pickle is safe to deserialize, this misclassification can lead them to execute attacker-controlled code on their system. This affects any workflow or product that uses Fickling as a security gate for pickle deserialization. This issue has been patched in version 0.1.7.
Fickling versions up to 0.1.6 incorrectly classify malicious Python pickles using runpy.run_path() or runpy.run_module() as SUSPICIOUS instead of OVERTLY_MALICIOUS. This misclassification can lead users to execute attacker-controlled code when relying on Fickling's security assessment for pickle deserialization decisions. The vulnerability has been patched in version 0.1.7.
تؤثر هذه الثغرة على أداة Fickling المستخدمة لتحليل وفحص ملفات Python pickle من الناحية الأمنية. تكمن المشكلة في عدم معاملة وحدة runpy في Python كوحدة غير آمنة، مما يؤدي إلى تصنيف ملفات pickle الخبيثة التي تستخدم دوال runpy.run_path() أو runpy.run_module() على أنها مشبوهة فقط بدلاً من خبيثة بشكل واضح. يمكن للمهاجمين استغلال هذا التصنيف الخاطئ لخداع المستخدمين الذين يعتمدون على مخرجات Fickling لتحديد ما إذا كان ملف pickle آمناً لإلغاء التسلسل، مما يؤدي إلى تنفيذ أكواد برمجية ضارة على أنظمتهم. تؤثر الثغرة على جميع سير العمل والمنتجات التي تستخدم Fickling كبوابة أمنية لعمليات إلغاء تسلسل pickle.
تصنف إصدارات Fickling حتى 0.1.6 بشكل خاطئ ملفات Python pickle الخبيثة التي تستخدم runpy.run_path() أو runpy.run_module() على أنها مشبوهة بدلاً من خبيثة بشكل صريح. يمكن أن يؤدي هذا التصنيف الخاطئ إلى تنفيذ المستخدمين لأكواد يتحكم فيها المهاجمون عند الاعتماد على تقييم Fickling الأمني لاتخاذ قرارات إلغاء تسلسل pickle. تم إصلاح الثغرة في الإصدار 0.1.7.
1. Immediately upgrade Fickling to version 0.1.7 or later across all development, testing, and production environments where pickle security validation is performed.
2. Review and re-scan all previously validated pickle files that were classified as SUSPICIOUS by Fickling versions 0.1.6 or earlier, treating them as potentially malicious until verified with the patched version.
3. Implement defense-in-depth controls including sandboxed execution environments for pickle deserialization, input validation, and avoid deserializing pickle data from untrusted sources regardless of Fickling's assessment.
1. الترقية الفورية لأداة Fickling إلى الإصدار 0.1.7 أو أحدث في جميع بيئات التطوير والاختبار والإنتاج حيث يتم إجراء التحقق الأمني من ملفات pickle.
2. مراجعة وإعادة فحص جميع ملفات pickle التي تم التحقق منها سابقاً والتي صنفتها إصدارات Fickling 0.1.6 أو الأقدم على أنها مشبوهة، ومعاملتها كملفات خبيثة محتملة حتى يتم التحقق منها باستخدام الإصدار المصحح.
3. تطبيق ضوابط الدفاع المتعدد الطبقات بما في ذلك بيئات التنفيذ المعزولة لإلغاء تسلسل pickle والتحقق من صحة المدخلات وتجنب إلغاء تسلسل بيانات pickle من مصادر غير موثوقة بغض النظر عن تقييم Fickling.