
CVE-2023-38831 هي ثغرة يوم صفري في WinRAR تسمح للمهاجمين بإخفاء ملفات ضارة داخل الأرشيفات، وخداع المستخدمين لتنفيذ محتوى ضار.
CVE-2023-38831 هي ثغرة يوم-صفر تؤثر على WinRAR في جميع الإصدارات السابقة للإصدار 6.23.
المشكلة تكمن في معالجة تنسيق ZIP، مما قد يسمح للمهاجمين باستخدام الأرشيفات المتأثرة لتوزيع البرامج الضارة. يمكن للمهاجمين إخفاء الملفات الضارة داخل أرشيفات ZIP بإعطائها أسماء مشابهة للملفات الشرعية، مما يخدع المستخدمين لتنفيذ محتوى ضار معتقدين أنهم يفتحون ملفًا آمنًا. تم استغلال هذا العيب بنشاط منذ أبريل 2023، مع استهداف خاص للقطاعات المالية، مما يشكل مخاطر كبيرة على المستخدمين الذين يفتحون ملفات مضغوطة غير موثوقة. يؤدي الترقية إلى WinRAR 6.23 أو أحدث إلى تخفيف هذه الثغرة من خلال تحسين تنظيف أسماء الملفات أثناء الاستخراج.
في المثال التالي، قمت بتنزيل جميع الملفات المقدمة في مجلد واحد، وشغلت النص البرمجي عبر CMD، وحددت أسماء الملفات المناسبة (بما في ذلك الاستغلال)، وأخيرًا أضفت بعض الملفات العشوائية إلى أرشيف .rar لجعله يبدو أكثر أصالة وإخفاء استغلال .txt الجديد بشكل أفضل. عندما ينقر المستخدم على ملف '.txt' المزعوم، سيتم تنفيذ ملف .cmd المخفي الموجود في نفس المجلد باسم مطابق:
https://github.com/user-attachments/assets/91eed756-bb38-42dd-a127-cabaccb4c386
باستخدام هذه الفكرة، يمكننا محاولة إخفاء الملف بأكبر قدر ممكن من الفعالية وجعل الاستغلال يبدو عاجلاً أو مهمًا للمستخدم. في المثال التالي، أضفت عدة ملفات عشوائية لجعل أرشيف .rar يبدو أكثر شرعية. استخدمت ملف .txt أساسيًا كطعم وسميته 'INSTRUCTIONS - Open Before Extraction' لإغراء المستخدم بالنقر عليه:

باستخدام النص البرمجي Python المقدم، يمكنك إنشاء ملف RAR خاص بك والذي سنستخدمه لرؤية المنطق وراء هذا الاستغلال.
الخطوة 1 - قم بتنزيل ملفي exploit.py و DoS.cmd.
الخطوة 2 - ضعهم جميعًا في مجلد واختر ملف طعم عشوائي، لأغراض هذا الإثبات المفاهيمي سأستخدم ملف .jpg بسيط.
الخطوة 3 - شغّل النص البرمجي وأدخل الأسماء المطلوبة
يعمل النص البرمجي بالطريقة التالية:
يلتقط أسماء الملفات وامتداداتها المقدمة.
ينشئ مجلدًا مؤقتًا بحيث يتم وضع النص البرمجي داخل مجلد فرعي وملف الطعم خارج منه — وكلاهما مسمى بشكل مشابه، مع إلحاق اسم المجلد بـ 'X' واسم ملف الطعم بـ 'Y':

ثم يقوم بإنشاء ملف ZIP من المجلد المؤقت، ويفتحه في الوضع الثنائي، ويعدل الحرفين 'X' و 'Y'، مستبدلاً إياهما بمسافات ليجعل الأمر يبدو كما لو كانا نفس الملف.
يكتب البيانات المعدلة في ملف .rar.

باستخدام برنامج مثل ProcessMonitor، يمكننا رؤية الخطوات الدقيقة التي يتخذها WinRAR عند تنفيذ الملف:

تنشأ المشكلة من الغموض الناتج عن أرشيف يحتوي على ملفين بأسماء شبه متطابقة: "image.jpg " (طعم) و
"image.jpg .cmd" (نص ضار). المسافة الإضافية تخلق اسم أساسي مشابه، مما يربك كيفية حل كل من WinRAR و Windows لمسارات الملفات. عند النقر على "image.jpg "، يقوم WinRAR بقراءة وإنشاء جميع الملفات ذات الصلة في المجلد المؤقت بسبب تشابه أسمائها الأساسية:

لحل الغموض، يقوم WinRAR بإجراء بحث باستخدام أحرف البدل (QueryDirectory) عن image.jpg .*، بهدف تحديد موقع نوع ملف قابل للتنفيذ مع ضمان عدم وجود ملفات أخرى ذات صلة. سيقوم WinRAR (و Windows) دائمًا بإعطاء الأولوية لأنواع الملفات القابلة للتنفيذ (مثل .cmd، .exe، .bat) عند حل المسارات الغامضة. ونتيجة لذلك، قام بتنفيذ "image.jpg .cmd" باستخدام cmd.exe (إنشاء عملية)، مما مكّن النص البرمجي الضار من التشغيل بدلاً من فتح ملف الطعم في عارض الصور الافتراضي.
قام WinRAR بحل هذه المشكلة في الإصدار 6.23، ويُنصح المستخدمون بشدة بالتحديث إلى أحدث إصدار.
https://www.win-rar.com/singlenewsview.html?&L=0&tx_ttnews%5Btt_news%5D=232