CVE-2026-45034
PhpSpreadsheet: تجاوز File::prohibitWrappers
- تم النشر
- 22/06/2026
- محدث
- 23/06/2026
- تخصيص CNA
- GitHub_M
- الأدلة المرصودة
- 14/08/2026
CVSS الأساسي
nvd · CVSS 4.0
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:Xمنخفض · الثلاثين يومًا القادمة
- المئوية
- 39.2%
- تاريخ الموديل
- 21/09/2026
EPSS هو تقدير إحصائي، وليس يقينًا أو مقياسًا للتأثير. ادمجها مع CVSS وحالة KEV والتعرض وبيئتك.
ملخص
# PhpSpreadsheet PhpSpreadsheet هي مكتبة PHP نقية لقراءة وكتابة ملفات جداول البيانات. قبل الإصدار 1.30.5، تم تصحيح الثغرة CVE-2026-34084 بواسطة الدالة المساعدة `File::prohibitWrappers`. تستدعي الدالة المساعدة `parse_url($filename, PHP_URL_SCHEME)` ثم تتحقق من `is_string($scheme) && strlen($scheme) > 1` لرفض أغلفة التدفق مثل `phar://` أو `php://` أو `data://` أو `expect://`. هذا الفحص ليس مكافئًا لـ "هل يحتوي المسار على غلاف". عندما يكون الإدخال بالشكل `phar:///path/file.phar/inner` مع ثلاثة شرطات مائلة أو أكثر بعد المخطط، فإن `parse_url` تُرجع `boolean false` بدلاً من إرجاع سلسلة المخطط. لذلك يتم تخطي فرع `is_string($scheme)`، وتعود الدالة المساعدة دون إلقاء استثناء، ويواصل المستدعي التنفيذ. ومع ذلك، لا تزال طبقة التدفق في PHP تتعامل مع `phar:///...` كغلاف phar صالح وتفتح ملف phar الأساسي. النتيجة هي أن `IOFactory::load($attackerPath)` يتجاوز التصحيح ولا يزال يلمس غلاف phar. على PHP 7.x، يكفي مجرد الوصول إلى غلاف phar عبر `is_file` ليقوم PHP تلقائيًا بإلغاء تسلسل بيانات phar الوصفية، مما يؤدي بدوره إلى استدعاء الطرق السحرية `__wakeup` و`__destruct` لكائن يتحكم فيه المهاجم ويمنح تنفيذ كود كامل عن بُعد (RCE). على PHP 8.x، تمت إزالة إلغاء التسلسل التلقائي للبيانات الوصفية لعمليات الملفات العادية، لذا فإن سلسلة الاستغلال على مستوى PhpSpreadsheet تنخفض إلى بدائية قراءة ملف عبر غلاف phar، ولا يعود RCE للظهور إلا إذا استدعى المستهلك النهائي `Phar::getMetadata` في أي وقت. تم إصلاح هذه الثغرة في الإصدار 1.30.5.
المصادر
1استغلال PoC لثغرة إلغاء التسلسل phar:// في PHPSpreadsheet، مع تجاوز prohibitWrappers لتحقيق تنفيذ تعليمات برمجية عن بُعد على تطبيقات PHP المعرضة للخطر.
الاستخدام المسؤول
استخدم معلومات الثغرات الأمنية فقط على الأنظمة التي تمتلكها أو المرخص لها باختبارها. يرتبط Kitploit ببيانات تعريف البحث العامة ولا يخزن أكواد الاستغلال أو الحمولات الضارة.