عودة الرمز البريدي إلى Node.js

منذ وقت ليس ببعيد ، في 2018 ، رعد نوع جديد من النسيان من الهجمات - Zip Slip.

Zip Slip هو ثغرة أمنية شديدة الانتشار في فك ضغط الأرشيف تسمح للمهاجمين بكتابة ملفات عشوائية إلى النظام ، مما يؤدي عادةً إلى تنفيذ الأوامر عن بُعد. تم اكتشافه والكشف عنه من قبل فريق Snyk Security تحسبًا لكشف عام في 5 يونيو 2018 وأثر على آلاف المشاريع ، بما في ذلك HP و Amazon و Apache و Pivotal وغيرها الكثير.

يمكن العثور على مزيد من المعلومات حول التفاصيل التقنية لـ Zip Slip على  موقع الويب .

ومنذ ذلك الحين ، تم إصلاح معظم الأطر واللغات التي تم اكتشاف نقاط الضعف بها ، ولم يتم سماعها لفترة طويلة.

ولكن في الآونة الأخيرة ، ظهرت حالة جديدة لا تقل إثارة للاهتمام عن الحالات السابقة.
Zip Slip في المكتبة الشعبية لـ Node.js هو "فك الضغط".

لم يفاجأ المؤلف بالضعف كثيرًا مثل أسلوب استغلال هذه الثغرة باستخدام حالة السباق.

شرط السباق (ملاحظة ، حالة السباق) ، والمنافسة أيضًا خطأ في تصميم نظام أو تطبيق متعدد الخيوط يعتمد فيه تشغيل النظام أو التطبيق على الترتيب الذي يتم فيه تنفيذ أجزاء من الكود.

للحصول على أمثلة ممتازة لاستغلال مثل هذه الثغرة الأمنية ، انظر  الرابط .

ويرد وصف مفصل للضعف في  القضايا إلى مستودع المشروع.

بالنسبة لخصائص العملية - هذا ما يكتبه المؤلف:

,   « » .zip-, yauzl , «..».

,     , .

   . ,      ,   .

,     , .  /    , .  .     - :

mkdir generic_dir
ln -s ../ generic_dir/symlink_to_parent_dir
ln -s / symlink_to_root
touch generic_dir/symlink_to_parent_dir/generic_dir/symlink_to_parent_dir/[...]/symlink_to_root/tmp/slipped_zip.txt

!

حاول الآن أن تتخيل كيف يعمل! ؛)

تم حجز المعرف لهذه الثغرة الأمنية: CVE-2020-12265.

نشرها إيجور بوجومولوف ، رئيس خدمات أمن المعلومات ، HackerU Russia

All Articles