
استغلال إثبات المفهوم لـ CVE-2023-4698، ثغرة تضمين ملف محلي في usememos/memos < 0.13.2، تتيح قراءة ملفات عشوائية على الخادم.
اليوم، أود تسليط الضوء على اكتشاف مهم — ثغرة أمنية خطيرة تم تحديدها في usememos/memos. هذه الثغرة، التي تقع ضمن فئة تضمين الملفات المحلي (LFI)، تشكل تهديدًا خطيرًا للأنظمة التي تشغّل إصدارات usememos/memos الأقدم من 0.13.2. وقد تم تخصيص المعرّف CVE-2023–4698 لهذه المشكلة. في هذه التدوينة، سنقوم بتحليل هذه الثغرة، وفهم آثارها، والتأكيد على ضرورة معالجتها.
في قلب هذه الثغرة يكمن خلل في تضمين الملفات المحلي (LFI). هذا النوع من الثغرات يسمح للمهاجمين بقراءة ملفات عشوائية على الخادم من خلال استغلال نقاط الضعف في الكود البرمجي. على وجه التحديد، تنشأ هذه الثغرة من خلل يمكّن المهاجمين من التلاعب بمعامل “InternalPath” في الطلب، مما يؤدي في النهاية إلى تضمين ملفات من نظام ملفات الخادم.
إن الآثار المترتبة على الاستغلال الناجح لثغرة تضمين الملفات المحلي (LFI) بعيدة المدى ومثيرة للقلق البالغ. بالنسبة للأنظمة التي تشغّل الإصدارات المتأثرة من usememos/memos (< 0.13.2)، يمكن أن تشمل العواقب: سرقة البيانات: يمكن للمهاجمين الوصول إلى ملفات حساسة، مثل ملفات التكوين وقواعد البيانات، مما قد يؤدي إلى سرقة البيانات وانتهاكات الخصوصية. اختراق الخادم: في سيناريوهات معينة، يمكن أن تتطور LFI إلى تنفيذ تعليمات برمجية عن بُعد (RCE)، مما يمنح المهاجمين القدرة على تنفيذ كود تعسفي على النظام المستهدف، وقد يؤدي ذلك إلى اختراق كامل للخادم. هجمات ثانوية: يمكن أن تكون LFI بمثابة نقطة انطلاق لشن هجمات إضافية، بما في ذلك اجتياز الدليل (Directory Traversal)، وتزوير الطلبات من جانب الخادم (SSRF)، أو حجب الخدمة (DoS). يمكن أن تؤدي هذه الهجمات إلى مزيد من اختراق النظام أو تعطيل عمله الطبيعي.
تنبع هذه الثغرة من الكود البرمجي نفسه، وبشكل أساسي من ملف "resource.go"، وتحديدًا في الأسطر من 1 إلى 69. تكمن المشكلة الأساسية في عدم كفاية التحقق من صحة مدخلات المستخدم وتعقيمها لحقل "InternalPath". هذا الإهمال يمكّن المهاجمين من توفير قيمة خبيثة لـ "InternalPath" عند إنشاء أو تحديث Resource. يتم بعد ذلك استخدام هذا الإدخال الخبيث بشكل أعمى للوصول إلى ملفات حساسة داخل نظام ملفات الخادم.
على سبيل المثال، قد يضبط المهاجم حقل "InternalPath" على "/etc/passwd" أو "/proc/self/environ"، في محاولة لاسترداد ملفات حساسة من الخادم. ونتيجة لذلك، يكشف الخادم عن غير قصد عن محتويات هذه الملفات الداخلية، مما قد يعرض معلومات شديدة الحساسية.
لمزيد من التفاصيل حول هذه الثغرة، يرجى الرجوع إلى الموارد التالية:
يمكنك أيضًا متابعتي للاطلاع على تحديثات أبحاثي والمواضيع الأخرى المتعلقة بالأمن:
لنعطِ الأولوية للأمن ونحمي أنظمتنا من التهديدات المحتملة. ابقَ يقظًا! 💻🔒