شو هي ثغرة Zip Cloaking؟ ملف بيبيّن نضيف للفحص وبيكتب غيره عند الفك

مكتبة zip بـ Rust لحد نسخة 9.0.4 فيها فرق قراءة: الفاحص بيقرا اسم الملف من فهرس الأرشيف، وقارئ البث بيكتب الاسم التاني على القرص. الإصلاح بـ 9.0.5.

نُشر في دقيقتين قراءة#أدوات المطورين#أمن سلسلة التوريد

شو المشكلة بالزبط؟

بصيغة ZIP كل ملف إلو اسمين: واحد بترويسة محلية قبل بياناته، وواحد بفهرس مركزي بآخر الأرشيف. ومكتبة zip بـ Rust بتقراهن بقارئين ما بيحكوا مع بعض.

القارئ العشوائي ZipArchive بيعتبر الفهرس المركزي هو المرجع وبيتجاهل اسم الترويسة المحلية. وقارئ البث ZipStreamReader بيفك الملفات بالترتيب وبيكتب كل ملف بالاسم يلي بالترويسة المحلية، بلا ما يقارنه بالفهرس. الإرشاد الأمني GHSA-m665-v7pm-7grj بيسمّي هالفرق Zip Cloaking، وبيصنّفه تعارض تفسير CWE-436.

كيف بيمرق الهجوم؟

المهاجم بيبني أرشيف فهرسه بيقول doc_report.pdf وترويسته المحلية بتقول cron_worker.sh، فالبوابة بتمرّقه والسيرفر بيكتب السكربت.

بوابات الحماية (مضاد فيروسات، جدران رفع ملفات) بتفحص الأرشيف بقارئ فهرس، فبتشوف ملف PDF نضيف وبتوافق. وبعدها خدمة الاستيعاب بالخلفية بتفك نفس الأرشيف بقارئ بث، فبتكتب المحتوى الخبيث فوق ملف موجود أصلاً على القرص. إذا هالملف بينفّذ دورياً، صار عند المهاجم تنفيذ كود عن بُعد، والملف الأصلي راح، فالخدمة بتموت معه.

والإرشاد حاطط مثال تشغيل كامل بيورجي السلسلة من أولها لآخرها، وسجل الثغرة الرسمي مقيّمها 10.0 على CVSS 4.0. والسجل الرسمي للثغرة هو CVE-2026-115905.

مين لازم ينتبه؟

أي نظام بيفك أرشيفات جاية من برّا، وخصوصاً لما الفحص والفك شغلتين منفصلين عندك.

الإرشاد بيسمّي خدمات الاستيعاب الآلي والميكروسيرفسات ومنصات SaaS يلي بتستقبل ملفات مضغوطة من المستخدمين، والبنى يلي بوابة الفحص فيها بتقرا الفهرس المركزي وبعدين بتسلّم الفك لقارئ بث، وشغل الحاويات يلي الكتابة فوق ملف إعداد أو سكربت فيه بتفتح باب خروج من الحاوية وتعطيل كامل.

شو تعمل هلق؟

حدّث المكتبة لـ 9.0.5، وراجع وين نظامك بيوثق بأسماء ملفات الأرشيفات.

  • دوّر بمشروعك على استعمال مكتبة zip بنسخة 9.0.4 أو أقدم، وخصوصاً قارئ البث ZipStreamReader.

  • إذا عندك بوابة فحص قبل الفك، خلّي الفحص والفك يقرأوا الأرشيف بنفس الطريقة، أو قارن الأسماء بين القارئين قبل الكتابة.

  • قصص مكتبات بتنكسر من جوّا سلسلة التوريد طلعت عنا قبل، متل اختراق LiteLLM وتحديثات أمان Node.js.

وإذا منصّتك بتستقبل ملفات من المستخدمين وبدك فحص أمان مرتب لمسار الرفع والفك، خدمة مُحَصَّن معمولة لهالشي.

أسئلة شائعة

مين بيتأثر بـ Zip Cloaking؟

أي خدمة بتفك أرشيفات ZIP من المستخدمين بمكتبة zip بـ Rust لحد نسخة 9.0.4، وخصوصاً لما فحص الأرشيف وفكّه بيصيروا بمكانين منفصلين.

ليش الفحص ما بيلقطها؟

قارئ الفهرس ZipArchive بياخد اسم الملف من الفهرس المركزي، وقارئ البث ZipStreamReader بياخد الاسم من ترويسة الملف المحلية وما بيقارنهن ببعض.

شو أسوأ شي ممكن يصير؟

الكتابة فوق ملف موجود على السيرفر. إذا الملف سكربت أو إعداد بينفّذ، النتيجة تنفيذ كود عن بُعد وتعطيل للخدمة، وسجل الثغرة الرسمي بيقيّمها 10.0 من 10.

كيف بتتصلّح؟

حدّث مكتبة zip لـ 9.0.5. وإذا بنيتك بتفحص الأرشيف بمكان وبتفكّه بمكان، ما توثق باسم الملف من قارئ واحد بس.

شارك المقال

مقالات أخرى