
ثغرة حقن أوامر نظام التشغيل في برنامج CGI لـ Zyxel
ثغرة حقن أوامر نظام التشغيل في برنامج CGI الخاص بـ Zyxel
تم اكتشاف الثغرة لأول مرة في 13 أبريل 2022، وتسببت في تنفيذ تعليمات برمجية عن بُعد في منتجات جدران الحماية من Zyxel. تم إغلاق هذه الثغرة المهمة التي حصلت على درجة 9.8 في CVSS من خلال التحديث الذي أصدرته Zyxel بعد 15 يوماً من ظهورها. تأثر ما لا يقل عن 20.800 نموذج في هذه العملية، معظمها في أوروبا. ترجع الثغرة إلى أمر "setWanPortSt" داخل تطبيق التوفير الصفري (zero-touch provisioning). الوصول إلى أمر "setWanPortSt" يكون عبر نقطة النهاية /ztp/cgi-bin/handler. لم تُلاحظ أي استغلالات منذ أن أصدرت Zyxel تحديثًا لنموذجها الخاص بالثغرة. تم ترقية إصدار البرنامج للنماذج المتأثرة إلى v5.30، وتم التأكيد على ضرورة تفعيل التحديث التلقائي للبرنامج لمنع الثغرة.
في 13 أبريل 2022، أبلغت Rapid7 عن ثغرة تؤثر على أجهزة جدار الحماية من Zyxel، مما يسمح للمهاجمين بحقن أوامر عشوائية عن بُعد كمستخدم "nobody" دون مصادقة. تم التعامل مع هذه الثغرة على مستوى حرج وتم تحديد درجة CVSS بـ 9.8. ثم عالجت Zyxel الثغرة بإصدار تحديث أمني في 28 أبريل 2022. في 12 مايو 2022، نشرت Rapid7 إعلانًا ووحدة Metasploit لهذه الثغرة.
بدأ باحثو ShadowServer في مراقبة محاولات استغلال CVE-2022-30525. تم كشف ما لا يقل عن 20.800 نموذج من نماذج جدران الحماية المتأثرة من Zyxel عبر الإنترنت خلال التحقيقات. لوحظ أن معظم النماذج المتأثرة كانت في فرنسا وإيطاليا.

تنشأ الثغرة من استخدام "os.system" مع بيانات مقدمة من المهاجم. يتم استخدام نقطة النهاية /ztp/cgi-bin/handler لشن الهجوم. Handler هو برنامج نصي بايثون يمكنه تنفيذ عدد من الأوامر المختلفة. شرح جايك باينز، الذي أبلغ عن الخطأ أولاً، الثغرة في مدونته على النحو التالي: "اكتشفت Rapid7 وأبلغت عن ثغرة تؤثر على جدران حماية Zyxel التي تدعم التوفير الصفري (ZTP)، والتي تشمل سلسلة ATP، وسلسلة VPN، وسلسلة USG FLEX (بما في ذلك USG20-VPN وUSG20W-VPN). تسمح الثغرة، التي تم تحديدها باسم CVE-2022-30525، لمهاجم غير مصادق وعن بُعد بتحقيق تنفيذ تعليمات برمجية عشوائية كمستخدم nobody على الجهاز المتأثر." تنشأ المشكلة من أمر يسمى "setWanPortSt" داخل تنفيذ التوفير الصفري، والذي يسمح للتزويد عن بُعد بتغيير إعدادات IP لمنافذ جدار الحماية.
تم نشر إثبات مفهوم (PoC) لفهم كيفية القيام بالاستغلال بشكل أفضل. Victorian Machinery هو استغلال إثبات مفهوم لـ CVE-2022-30525. الثغرة هي ثغرة حقن أوامر عن بُعد غير مصادقة تؤثر على جدران حماية Zyxel التي تدعم التوفير الصفري.

أولاً، يتم استغلال الهدف باستخدام مستمع netcat ويتم اصطياد شل عكسية. بشكل افتراضي، يتم تشغيل "nc" عن طريق إعطاء "nc-path". في بايثون، يتم إنشاء نسخة من العملية الرئيسية باستخدام عملية "os.fork()". ثم، إذا كان معرف العملية يساوي 0، يتم إجراء طلب POST إلى عنوان URL المحدد. يحتوي عنوان URL على البروتوكول والعنوان البعيد المراد استغلاله والمنفذ البعيد ونقطة النهاية "/ztp/cgi-bin/handler" على التوالي. بفضل نقطة النهاية /ztp/cgi-bin/handler هنا، يمكن الوصول إلى الميزة في أمر "setWanPortSt"، والتي تسمح بتغيير إعدادات IP لمنافذ جدار الحماية. عند فحص الحمولة، يُرى أن هدف الأمر هو المنفذ 1270 من بروتوكول DHCP. بهذه الطريقة، يمكن للمهاجمين توفير تنفيذ تعليمات برمجية عن بُعد كمستخدم nobody.
مؤسسة Shadowserver، المجموعة التي تحقق في الاستغلال العالمي، لم تكشف عن مزيد من المعلومات حول محاولات الاستغلال التي تم رصدها وخصائصها. تم الإعلان عن عدم وجود أي محاولة إساءة منذ الاثنين 16 مايو 2022، لكن التحقيقات مستمرة.
يُنصح مسؤولو الأجهزة المتأثرة بترقية البرامج الثابتة إلى V5.30 في أقرب وقت ممكن. قال جايك باينز أيضًا بتمكين التحديثات التلقائية للبرامج الثابتة إذا أمكن. تم انتقاد Zyxel لمعالجتها الثغرة بصمت، ولكن في البيان تم شرح أن ذلك كان بسبب "سوء التواصل أثناء عملية تنسيق الإفصاح". تم إخبار الموظفين الداخليين أن إنشاء سياسة "HTTP Protocol Signatures" جديدة عن طريق إنشاء قاموس للتخفيف اليدوي يمكن أن يمنع الاستغلال.
نتيجة لذلك، أثرت هذه الثغرة التي حدثت في منتجات جدار الحماية من Zyxel على العديد من النماذج بمستوى حرج. على الرغم من معالجة المشكلة في وقت قصير، إلا أن تأثير الاستغلال كان كبيرًا جدًا. حقيقة عدم العثور على استغلالات لفترة طويلة تظهر أن التحديثات يمكن أن تغلق الثغرة الأمنية في الوقت الحالي.