الخلاصة الرئيسية: رصدت Sansec هجمات PolyShell على 56.7% من جميع متاجر Magento المعرضة خلال أيام من الكشف، مع بدء الاستغلال الجماعي في 19 مارس 2026 — ولم يكن هناك تصحيح رسمي لإصدارات الإنتاج الحالية من Magento أو Adobe Commerce.
ملف بوليغلوت يطرق باب واجهة REST API
في 17 مارس 2026، كشفت شركة أمن التجارة الإلكترونية Sansec علنيًا عن ثغرة أطلقت عليها اسم PolyShell — خلل في رفع الملفات غير المقيد دون مصادقة يؤثر على جميع إصدارات الإنتاج من Magento Open Source وAdobe Commerce. خلال يومين، بدأ الاستغلال الجماعي الآلي. وخلال أسبوعين، تم اختراق أكثر من نصف جميع المتاجر المعرضة.
الثغرة أنيقة في بساطتها. تقبل واجهة REST API الخاصة بـ Magento رفع الملفات كجزء من خيارات العناصر المخصصة لسلة التسوق. عندما يُعيَّن خيار المنتج على نوع “file”، تعالج الواجهة كائن file_info مُضمن يحتوي على بيانات ملف مشفرة بـ base64، ونوع MIME، واسم ملف. يُكتب الملف المرفوع في دليل pub/media/custom_options/quote/ على الخادم.
الخلل الجوهري: لا توجد قيود على امتداد الملف. الامتدادات مثل .php و.phtml و.phar غير محظورة. التحقق الوحيد هو فحص رأس الصورة عبر getimagesizefromstring()، الذي يُتجاوز بسهولة باستخدام ملف بوليغلوت — ملف صالح في الوقت نفسه كصورة وكبرنامج نصي PHP.
أبسط استغلال يضيف GIF89a (رأس GIF صالح) قبل حمولة PHP. طالما يبدأ الملف بـ GIF89a ويحتوي على بعض البيانات، تعتبره getimagesizefromstring() صورة صالحة. يتجاهل مفسر PHP رأس الصورة وينفذ الكود.
النتيجة: تنفيذ تعليمات عن بُعد دون مصادقة على أي متجر Magento بالتهيئة الافتراضية.
الجدول الزمني للاستغلال
سرعة الاستغلال الجماعي تميز PolyShell عن ثغرات تطبيقات الويب النموذجية.
16 مارس، 12:00 بتوقيت UTC — أول نشاط استطلاع رصدته Sansec. بدأ المهاجمون استكشاف نقاط نهاية REST API لـ Magento.
17 مارس — نشرت Sansec بحثها الكاشف مسمية الثغرة “PolyShell”.
19 مارس — انطلق المسح الجماعي الآلي بمشاركة ما لا يقل عن 50 عنوان IP في موجة المسح الأولى.
19-29 مارس — حملة استغلال مستمرة. نشر المهاجمون أبوابًا خلفية وحقنوا JavaScript خبيثًا وأسسوا وصولًا مستمرًا عبر آلاف المتاجر.
30 مارس — موجة هجمات ضخمة ضربت مئات المتاجر في ساعة واحدة، حاقنة محمّلات JavaScript من النطاق الخبيث lanhd6549tdhse.top.
بحلول الوقت الذي قاست فيه Sansec التأثير، كانت هجمات PolyShell قد ضربت 56.7% من جميع المتاجر المعرضة — معدل استغلال يتجاوز بكثير حملات ثغرات الويب النموذجية.
نطاق التعرض
تؤثر PolyShell على ما يُقدر بـ 112,000 إلى 130,000 متجر Magento نشط تعالج قيمة إجمالية مجمعة تبلغ 173 مليار دولار من البضائع سنويًا. يشمل ذلك تثبيتات Magento Open Source (المجتمع) وAdobe Commerce (المؤسسات).
عالجت Adobe الخلل في فرع الإصدار المسبق 2.4.9 وأصدرت لاحقًا تصحيحات أمنية لإصدارات الإنتاج (2.4.4-p16 إلى 2.4.8-p3) كجزء من نشرة الأمان APSB25-94. ومع ذلك، لم تطبق الغالبية العظمى من المتاجر هذه التصحيحات بحلول وقت بدء الاستغلال الجماعي — وفترة الكشف الأولية تركت جميع متاجر الإنتاج مكشوفة.
هذه الفجوة في التصحيح هي السمة المحددة لأزمة PolyShell. معدل الاستغلال البالغ 56.7% يعكس أن معظم المتاجر لم تُصحح حتى بعد توفر التصحيحات، مؤكدًا الفجوة المستمرة بين توفر التصحيحات وتبنيها في نظام Magento البيئي.
إعلان
ما بعد الاستغلال: أبواب خلفية وحقن JavaScript
الحصول على تنفيذ الكود الأولي عبر PolyShell هو الخطوة الأولى فقط. وثقت Sansec خطة ما بعد الاستغلال المتسقة:
الخطوة 1: نشر الباب الخلفي accesson.php. بعد تحقيق تنفيذ التعليمات عن بُعد، يرش المهاجمون بابًا خلفيًا ثانويًا يُسمى accesson.php عبر أدلة متعددة لتعظيم الاستمرارية. حتى لو اكتُشف الملف البوليغلوت الأصلي وأُزيل، يوفر باب accesson الخلفي وصولًا مستمرًا.
الخطوة 2: حقن JavaScript مُشفر. تُحقن محمّلات JavaScript خبيثة في واجهة المتجر الأمامية، محمّلة برمجيات خبيثة خارجية من نطاقات يسيطر عليها المهاجمون. يلتقط هذا JavaScript بيانات بطاقات الدفع التي يدخلها العملاء أثناء الدفع — نمط سرقة Magecart الكلاسيكي، المُقدم الآن عبر نقطة دخول ثغرة يوم الصفر. في بعض الحالات، نشر المهاجمون أداة سرقة جديدة قائمة على WebRTC قادرة على تجاوز حمايات Content Security Policy (CSP)، مما يمثل تطورًا في أدوات السرقة.
الخطوة 3: السيطرة على حسابات العملاء. بالإضافة إلى السرقة، تمكّن الثغرة من البرمجة عبر المواقع المخزنة (XSS) التي يمكن تسليحها للسيطرة على حسابات العملاء، والوصول إلى سجلات الطلبات وطرق الدفع المحفوظة والبيانات الشخصية.
ما بعد الاستغلال متعدد المراحل يعني أن تنظيف اختراق PolyShell يتطلب أكثر من تصحيح خلل الرفع. يجب مسح كل دليل بحثًا عن متغيرات accesson.php، ويجب تدقيق جميع ملفات JavaScript بحثًا عن محمّلات محقونة، ويجب إبطال جلسات العملاء.
التخفيفات الفورية
رغم إصدار Adobe لتصحيحات الإنتاج، فإن معدل التبني المنخفض يعني أن معظم المتاجر تبقى غير مُصححة. يجب على مسؤولي Magento الذين لم يطبقوا بعد تحديثات APSB25-94 تنفيذ دفاعات يدوية فورًا:
حظر الامتدادات الخطيرة على مستوى خادم الويب. هيّئ Nginx أو Apache لرفض الطلبات التي ترفع ملفات بامتدادات .php أو .phtml أو .phar أو .shtml إلى دليل الخيارات المخصصة. هذا هو التخفيف الفوري الأكثر فعالية.
تقييد الوصول إلى REST API. إذا لم يكن الدفع كضيف عبر API مطلوبًا، عطّل الوصول غير المصادق إلى نقطة نهاية خيارات عناصر سلة التسوق المخصصة. هذا يكسر سلسلة الهجوم عند نقطة الدخول.
نشر قاعدة WAF. أصدر مزودو WAF الرئيسيون بما في ذلك Cloudflare وAkamai وSucuri قواعد لكشف حمولات PolyShell. حماية WAF ليست بديلًا عن التصحيح لكنها تقلل التعرض للمسح الآلي.
مراقبة دليل custom_options. أعدّ مراقبة سلامة الملفات على pub/media/custom_options/quote/ للتنبيه على أي ملفات PHP جديدة. عمليات الرفع المشروعة لهذا الدليل يجب أن تحتوي فقط على ملفات صور.
البحث عن accesson.php. ابحث في تثبيت Magento بالكامل عن accesson.php أو أي ملفات PHP أُنشئت حديثًا خارج الأدلة المتوقعة. وجود هذا الملف يؤكد اختراقًا نشطًا.
تدقيق JavaScript بحثًا عن محمّلات محقونة. تحقق من جميع كتل CMS والملفات الثابتة وملفات القوالب بحثًا عن JavaScript مُشفر يشير إلى نطاقات خارجية.
لماذا تتجاوز أهمية PolyShell نطاق Magento
PolyShell هي دراسة حالة في المخاطر النظامية لمنصات التجارة الإلكترونية المتجانسة. الثغرة موجودة لأن تحقق رفع الملفات في Magento يثق بنوع المحتوى بدلًا من امتداد الملف — خيار تصميم يُفضل الراحة على الأمان.
بالنسبة لنظام التجارة الإلكترونية الأوسع، تطرح PolyShell ثلاثة أسئلة غير مريحة:
كم عدد المنصات الأخرى التي تعاني من فجوات تحقق مماثلة؟ إذا أغفلت واجهة REST API لـ Magento حظر الامتدادات في رفع الملفات، يجب على المنصات المنافسة تدقيق خطوط رفع الملفات الخاصة بها فورًا.
ماذا يحدث عندما تتجاوز فجوة التصحيح نافذة الاستغلال؟ عرفت Adobe الإصلاح في الإصدار المسبق لكنها لم تشحن تصحيح إنتاج في الوقت المناسب. نظام Magento البيئي يتحمل تكلفة هذه الفجوة الزمنية.
هل يمكن أن تبقى متاجر التجارة الإلكترونية آمنة بدون موارد أمنية مخصصة؟ يشير معدل الاستغلال البالغ 56.7% إلى أن معظم متاجر Magento تفتقر إلى قدرة المراقبة والاستجابة لكشف هجمات يوم الصفر والتخفيف منها. فجوة أمن التجار الصغار مشكلة هيكلية لم يحلها بائعو المنصات.
الأسئلة الشائعة
ما هي PolyShell ولماذا هي خطيرة جدًا؟
PolyShell ثغرة يوم صفر حرجة في Magento وAdobe Commerce تتيح للمهاجمين غير المصادقين رفع ملفات بوليغلوت — ملفات صالحة في الوقت نفسه كصور وبرامج PHP نصية قابلة للتنفيذ — عبر REST API. تؤثر على جميع إصدارات الإنتاج ولا تتطلب أي تفاعل من المستخدم أو مصادقة، مما يجعلها قابلة للاستغلال بسهولة على نطاق واسع. خلال أسبوعين من الكشف، تم اختراق 56.7% من جميع المتاجر المعرضة.
كيف أعرف إذا كان متجر Magento الخاص بي قد اُخترق بواسطة PolyShell؟
ابحث في تثبيت Magento الخاص بك عن ملفات تحمل اسم accesson.php أو أي ملفات PHP أُنشئت حديثًا في دليل pub/media/custom_options/quote/. تحقق من ملفات JavaScript الأمامية بحثًا عن كود مُشفر يشير إلى نطاقات خارجية، خاصة lanhd6549tdhse.top. إذا وجدت أيًا من هذه المؤشرات، افترض اختراقًا كاملًا يشمل سرقة محتملة لبيانات بطاقات الدفع.
ماذا ينبغي أن يفعل مشغلو التجارة الإلكترونية الجزائريون الآن؟
طبّق تصحيحات الأمان APSB25-94 من Adobe فورًا. إذا لم يكن التصحيح ممكنًا خلال 24 ساعة، هيّئ خادم الويب (Nginx أو Apache) لحظر رفع ملفات .php و.phtml و.phar إلى دليل الخيارات المخصصة. انشر قاعدة WAF من Cloudflare أو Sucuri لتصفية حمولات PolyShell، وأعدّ مراقبة سلامة الملفات على جميع أدلة رفع الوسائط.
المصادر والقراءات الإضافية
- PolyShell: Unrestricted File Upload in Magento and Adobe Commerce — Sansec
- Magento PolyShell Flaw Enables Unauthenticated Uploads, RCE and Account Takeover — The Hacker News
- PolyShell Attacks Target 56% of All Vulnerable Magento Stores — Bleeping Computer
- PolyShell Flaw Exposes Magento and Adobe Commerce to File Upload Attacks — Security Affairs
- PolyShell Alert: Critical Magento REST API Vulnerability Faces Massive Global Exploitation — Security Online
- Magento PolyShell — Unauthenticated File Upload to RCE (APSB25-94) — Searchlight Cyber















