ترجمة آلية لم تُراجَع بعد. النص الإنجليزي هو المرجع في حال الاختلاف.
الملخص
في إصدارات Trail of Bits fickling حتى 0.1.12، يتم حل معامل pickle STACK_GLOBAL الذي يحمل اسم __qualname__ منقط (مثل "Values.read_file") بواسطة find_class الخاص بـ pickle عبر _getattribute إلى مسار سمة عشوائي بدلاً من دالة على مستوى الوحدة النمطية. يسجل Fickling المكون الرئيسي للاسم فقط في تتبع الاستيراد الخاص به ويعرض العملية كاستيراد عادي (على سبيل المثال، يعرضها 'python -m fickling' كـ 'from optparse import Values.read_file')، لذلك لا يتم أبدًا تحليل مرجع السمة اللاحقة كاستدعاء. لا يشير تحليل OvertlyBadEvals إليها، وتهجع الدالة check_safety() عائدة بـ LIKELY_SAFE مع صفر نتائج. يسمح هذا للمهاجم بالوصول إلى طريقة فئة تقوم بتنفيذ الأوامر: يقوم optparse.Values.read_file بتنفيذ exec(open(filename).read(), vars)، مما يحقق تنفيذ شيفرة عشوائية عند تحميل ملف pickle المعدّل من خلال fickling.load()، والذي يربط check_safety() بـ pickle.loads() كبوابة أمان صريحة. إن optparse موجود في جميع إصدارات CPython 3.x الحالية (مُهمل اعتبارًا من Python 3.13، ولم تتم إزالته). يكمن هذا الضعف في دقة وتحليل أسماء مسار السمات المنقطة، وهو يختلف وقابل للإصلاح بشكل مستقل عن ضعف الثقة في أصل الوحدة النمطية المتعقب كـ CVE-2026-16760: إن حل أو الإبلاغ عن واردات مسار السمات المنقطة يغلق هذا المتجه مع إبقاء سلوك الثقة على مستوى الوحدة النمطية دون تغيير. تم التحقق من أن هذا التجاوز لا يزال موجودًا على فرع المطور الرئيسي في الالتزام d011709 اعتبارًا من 2026-10-30، بعد إضافات قائمة الحظر الخاصة بالمطور لشهر أكتوبر واستدلال جديد يحدد سمات stdlib الخاصة؛ ونظرًا لأن طريقة الفئة العامة Values.read_file ليست مدرجة في القائمة السوداء ولا يتم الإبلاغ عنها كسمة خاصة، فلا يتم معالجتها بواسطة تلك المعالجات.