مقدمة في روبي على القضبان
روبي على القضبان (Rails) هو إطار عمل ويب كامل المكدس ونموذج عرض-مراقب-نموذج (MVC) مبني مع روبي. يأتي "متضمنًا البطاريات"، حيث يقدم للمطورين كل ما يحتاجونه خارج الصندوق: أداة تخطيط الكائنات-العقلانية (السجل النشط)، وطبقة الطلب/الاستجابة وطبقة العرض (حزمة العمل/عرض العمل)، ومعالجة المهام في الخلفية، والبريد، ودعم WebSocket، وتخزين الملفات وتحميلها (التخزين النشط)، وغير ذلك الكثير.
منذ إصداره الأولي في عام 2004، نما Ruby on Rails ليصبح أحد أكثر أطر عمل الويب اعتماداً على نطاق واسع في العالم. وهو اليوم يدعم ملايين المواقع والتطبيقات - بما في ذلك منصات رفيعة المستوى مثل GitHub و Shopify و Airbnb و Basecamp و Netflix. وبفضل تركيزه القوي على الاتفاقية على التهيئة وإنتاجية المطورين والنماذج الأولية السريعة، أصبح Rails إطار عمل مفضل لكل من الشركات الناشئة والشركات الكبيرة.
بحث الوحدة 515: الكشف عن الثغرات الحرجة في رايلز
خلال بحث مستقل، قام تاي دو، وهو عضو في فريق الوحدة 515 التابع لمكتب OPSWAT، بتحديد ثغرتين في نظام روبي على رايلز - إحداهما قد تؤدي إلى تنفيذ التعليمات البرمجية عن بُعد (RCE). وقد تم الكشف عن هذه النتائج بشكل مسؤول لفريق أمن Rails، الذي نسّق معه OPSWAT طوال العملية.
في 13 أغسطس 2025، نشر فريق Rails في 13 أغسطس 2025، نشر فريق Rails إرشادات عامة وأصدر إصدارات مصححة تعالج كلا الثغرتين.
الإصدارات المتأثرة والإصدارات الثابتة
المكوّن | الإصدارات المتأثرة | الإصدارات الثابتة |
---|---|---|
التخزين النشط (CVE-2025-24293) | القضبان ≥ 5.2.0 وما دون الإصدار الثابت | 7.1.5.2, 7.2.2.2, 8.0.2.1 |
تسجيل السجل النشط (CVE-2025-55193) | Rails < 7.1.5.2, < 7.2.2.2, < 8.0.2.1 | 7.1.5.2, 7.2.2.2, 8.0.2.1 |
المشكلات الأمنية التي تم تحديدها في ريلز
CVE-2025-24293 - أساليب التحويل غير الآمنة للتخزين النشط
تؤثر هذه الثغرة الأمنية على التخزين النشط في إصدارات Rails ≥ 5.2.0. تحدث هذه الثغرة عندما يتم تمرير طرق تحويل الصور غير الآمنة إلى mini_magick، والتي - عند دمجها مع مدخلات المستخدم غير المصادق عليها - يمكن أن تؤدي إلى تنفيذ التعليمات البرمجية عن بعد (RCE). بينما يشير Rails إلى أن الخلل غير قابل للاستغلال في ظل التكوين الافتراضي، فإن التطبيقات التي تعرض خيارات التحويل للمستخدمين معرضة للخطر بشكل خاص.
CVE-2025-55193 - حقن الهروب من ANSI في تسجيل السجل النشط
تؤثر هذه الثغرة على تسجيل السجل النشط في جميع إصدارات Rails قبل 7.1.5.2 و7.2.2.2.2 و8.0.2.1. حيث يمكن للمهاجمين حقن معرّفات مصممة خصيصًا تحتوي على تسلسلات هروب ANSI في السجلات، مما قد يؤدي إلى التلاعب بكيفية ظهور الاستعلامات في مخرجات المحطة الطرفية ويؤدي إلى سجلات مضللة أو تالفة. وعلى الرغم من أن الخلل لا يكشف البيانات بشكل مباشر أو يمكّن من تنفيذ التعليمات البرمجية، إلا أنه قد يعيق جهود المراقبة والاستجابة للحوادث. قام فريق أمن Rails بحل المشكلة في نفس الإصدارات المصححة.
التحليل الفني لمشكلة CVE-2025-24293 - تنفيذ التعليمات البرمجية للتخزين النشط عن بُعد
نظرة عامة على التخزين النشط
التخزين النشط هو إطار عمل Rails المدمج للتعامل مع تحميل الملفات. إنه يمكّن المطورين من إرفاق الملفات بنماذج السجل النشط وتخزينها إما محليًا (للتطوير/الاختبار) أو على الخدمات السحابية مثل Amazon S3 أو Google Cloud Storage أو Microsoft Azure. تشمل الميزات Core إجراء تحويلات للصور، وإنشاء معاينات للملفات غير الصور مثل ملفات PDF ومقاطع الفيديو، وعكس التحميلات إلى خدمات متعددة للتكرار أو الترحيل.
كيفية عمل تحويلات الصور
تمكّن تحويلات الصور المطورين من تقديم مرفقات بأبعاد أو تنسيقات محددة. يتم ذلك عن طريق استدعاء أسلوب المتغير() على مرفق صورة وتمرير العمليات المدعومة.
عندما يطلب العميل عنوان URL متغير، يقوم التخزين النشط بإجراء التحويل عند الطلب من النقطة الأصلية، ويخزن النتيجة على الخدمة المهيأة، ويعيد توجيهه إلى الملف الذي تم إنشاؤه حديثًا.
يدعم Rails معالجين لتحويلات الصور: Vips و MiniMagick. يمكن تكوين المعالج المستخدم عبر config.active_storage.variant_processor.
يتم تحديد العمليات المحددة المدعومة في تحويلات الصور بواسطة أداة image_processing gem وتعتمد على المعالج الأساسي الذي تم تكوينه لتطبيق Rails.
إصلاح غير مكتمل ل CVE-2022-21831
في مارس 2022، كشف فريق Rails في مارس 2022 عن الثغرة الأمنية CVE-2022-21831، وهي ثغرة أمنية خطيرة لحقن التعليمات البرمجية في ميزة تحويل الصور في Active Storage. قدم التصحيح قائمة سماح افتراضية لطرق التحويل للتخفيف من حدة المشكلة.
ومع ذلك، أثناء مراجعة أعمق للتصحيح والشفرة المصدرية لـ Rails، اكتشف تاي دوOPSWAT وحدةOPSWAT 515) تجاوزًا جعل الإصلاح الأصلي غير مكتمل. أعاد هذا التجاوز تقديم مسار للمهاجمين لتحقيق تنفيذ التعليمات البرمجية عن بُعد (RCE)، مما أدى إلى الكشف عن CVE-2025-24293.
السبب الجذري في جوهرة_معالجة_الصورة
عندما يتم تطبيق التحويل، يقوم Rails بتفويض العملية إلى جوهرة معالجة_الصورة، والتي تستدعي في النهاية ImageProcessing::Processor#call في lib/image_processing/processor.rb
إذا كان المعالج المتغير المهيأ هو MiniMagick، فإن الثغرة تكمن في دالتين داخل lib/image_processing/mini_magick.rb:
-تحميل_صورة - يقبل الخيارات غير المصادق عليها من ** أداة التحميل.
-Save_image - يقبل الخيارات غير المصادق عليها من **حفظ_الصورة - يقبل الخيارات غير المصادق عليها من **حافظ.
بالنسبة لتحميل_صورة، يتم الاحتفاظ بأي أزواج مفاتيح-قيمة في **المحمّل بخلاف الصفحة والهندسة والتوجيه التلقائي في **الخيارات. ينطبق الأمر نفسه على حفظ_الصورة، حيث تبقى المفاتيح بخلاف السماح_بالتقسيم في **الخيارات. تُمرر هذه الخيارات لاحقًا إلى Utils.apply_options(magick, **options)، والتي تطبقها كعلامات واجهة مستخدم MiniMagick CLI (مثل -الجودة).
على الرغم من أن المحمل والموفر مضمنان في قائمة السماح الافتراضية وبالتالي يعتبران آمنين، إلا أن هذه الثقة في غير محلها. فباستخدام مدخلات مصممة بعناية، يمكن للمهاجم استغلال هذه الخيارات لتجاوز عمليات التحقق والتسبب في نهاية المطاف في قيام Rails بتنفيذ أوامر نظام عشوائية على الجهاز المضيف.
سيناريو الاستغلال في تطبيقات Rails
إذا قام أحد التطبيقات بتمرير مدخلات المستخدم غير المصادق عليها مباشرةً إلى أساليب التحويل، على سبيل المثال:
يمكن للمهاجمين صياغة مدخلات خبيثة للتلاعب بخيارات أداة التحميل أو التوفير. وهذا من شأنه أن يتجاوز قائمة السماح وينفذ أوامر عشوائية على الخادم، مما يؤدي إلى تنفيذ التعليمات البرمجية عن بُعد (RCE).
إثبات المفهوم: تنفيذ التعليمات البرمجية عن بُعد
في تطبيقات Rails التي تشغّل إصدارات ضعيفة (قبل الإصدار 8.0.2.1 و7.2.2.2.2.2 و7.1.5.2)، أظهرت وحدة OPSWAT 515 بنجاح سلسلة استغلال حيث أدت مدخلات التحويل غير المصادق عليها إلى تنفيذ أمر shell.
يوضح فيديو إثبات المفهوم هذا إمكانية استغلال CVE-2025-24293 ويسلط الضوء على التأثير الواقعي على تطبيقات Rails:
خدمات اختبار الاختراق واختبار الاختراق الاحترافية
يجب على المؤسسات معالجة CVE-2025-24293 و CVE-2025-55193 من خلال ترقية Ruby on Rails إلى أحدث إصدارات الأمان (7.1.5.2 أو 7.2.2.2.2 أو 8.0.2.1). إذا كان التصحيح الفوري غير ممكن، فإن إجراءات الحماية المؤقتة تشمل تقييد تحويلات الصور إلى إعدادات مسبقة محددة مسبقًا، والتحقق من صحة مدخلات المستخدم وتعقيمها، وتقوية سياسات ImageMagick، والتأكد من عدم قدرة السجلات على تفسير تسلسلات الهروب من ANSI.
ومع ذلك، فإن تطبيق التصحيحات لا يقضي على جميع المخاطر في بيئات الويب الحديثة. فغالباً ما يؤدي منطق الأعمال المخصص، وعمليات التكامل مع طرف ثالث، وخطوط أنابيب النشر المعقدة إلى إنشاء مسارات قابلة للاستغلال تتجاوز إرشادات البائعين. هذا هو السبب في أهمية اختبار اختراق تطبيقات الويب .
في OPSWAT تقدم الوحدة 515 خدمات اختبار اختراق تطبيقات الويب المتخصصة التي تتجاوز الماسحات الضوئية الآلية أو عمليات التدقيق في قوائم المراجعة. يتألف فريقنا من خبراء أمن هجوميين متمرسين يتمتعون بسنوات من الخبرة في اختبار التطبيقات واسعة النطاق في مختلف الصناعات. وباستخدام منهجية منهجية منهجية عدائية، نكتشف نقاط الضعف في تدفقات المصادقة، والتحقق من صحة المدخلات، والتحكم في الوصول، ومعالجة البيانات - وهي مشكلات يمكن أن تستمر حتى في أطر العمل المصححة بالكامل مثل Ruby on Rails.
وتجمع كل مشاركة بين الخبرة التقنية العميقة والتقارير الجاهزة للمؤسسات، مما يوفر رؤى واضحة وقابلة للتنفيذ تمكّن فرق التطوير من إصلاح العيوب بفعالية. من خلال إشراك الوحدة 515، تكتسب المؤسسات ضماناً بأن تطبيقاتها المهمة يتم اختبارها من قبل خبراء لا يكتفون بمحاكاة تقنيات الهجوم في العالم الحقيقي فحسب، بل يتحققون أيضاً من أن الإصلاحات تسد الثغرات بالفعل. وتعزز هذه الخبرة جهود الإصلاح، وتقلل من المخاطر المتبقية، وتزيد من مرونة التطبيقات بشكل عام ضد التهديدات المتطورة