الدور المستعاد كان اسمه allow_nothing_role، لكن الاسم كان مضللاً. فقد منح الدور أربع صلاحيات لخدمة سجل الحاويات المرن (ECR): ecr:DescribeRepositories و ecr:ListImages و ecr:BatchGetImage و ecr:GetDownloadUrlForLayer .
هذه الصلاحيات الأربع كانت كافية لسحب صور الحاويات مباشرة عبر API الخاص بـ AWS، دون الحاجة لأي رمز مصادقة لسجل Docker. باستخدامها، تمكن الباحثون من تعداد 1,111 مستودعاً إنتاجياً وسحب صور الحاويات .
داخل إحدى صور الحاويات المسحوبة، اكتشف الباحثون رمز نشر خاص بمنصة NPM كان قد تسرب إلى تاريخ إعدادات الحاوية. الرمز تم تمريره إلى عملية البناء عبر تعليمة ARG في ملف Dockerfile، مما يجعله يُسجل بشكل دائم في حقل history[] غير القابل للتغيير داخل الصورة. وهذا يعني أن أي شخص يمكنه سحب الصورة كان بإمكانه استخراج الرمز .
الرمز المستعاد من NPM كان يحتوي على ثلاث خصائص خطيرة: action: writename: nullbypass_2fa: truezapier-platform-core و zapier-platform-cli وحزمة التصميم zapier-design-system. يعني إعداد bypass_2fa: true.
الحزمة الأكثر خطورة في السلسلة كانت zapier-design-system، والتي تُحمّل في كل جلسة مصادق عليها على موقع zapier.com. تحقق الباحثون من مسار التحميل هذا عبر أدوات المطورين في المتصفح وتوقفوا عند هذا الحد، ولم ينشروا أي حزمة خبيثة .
لو قام مهاجم بنشر نسخة مسمومة من هذه الحزمة، لكانت قد نفذت كود JavaScript تحت سيطرة المهاجم داخل نطاق zapier.com الموثوق بمجرد التحديث التالي. من هذا الموقع، يمكن للمهاجم إنشاء Zaps وTables وخوادم MCP، والتحكم بالتكاملات الموجودة نيابة عن المستخدمين الموثقين. رموز OAuth ومفاتيح API للخدمات المتصلة تبقى على الخادم، لكن الضرر العملياتي كان سيظل كارثياً .
قدمت Token Security التقرير في 12 فبراير 2026. وخلال أربعة أيام، قامت زابير بفرز التقرير، وإلغاء رمز NPM المسرب، وتشديد الدور الأساسي في AWS. تم تأكيد إكمال المعالجة بحلول 5 مارس 2026. وأفادت زابير بعدم وجود أي دليل على استغلال الثغرة في الواقع .
حصل الباحثون على الحد الأقصى لمكافأة البرنامج وقدرها 3,000 دولار، والتزمت زابير بمراجعة سقف المكافآت في المراجعة التالية للبرنامج .
تجدر الإشارة إلى أن هذا الكشف البحثي منفصل عن هجوم حقيقي على سلسلة التوريد تعرض له حساب زابير على NPM في 24 نوفمبر 2025، عندما اخترقت دودة Shai Hulud 2.0 الحساب وأصابت 425 حزمة .
لخص يائير باليلتي، قائد فريق أبحاث الأمن في Token Security، النتيجة الأساسية:
"كل حلقة في السلسلة كانت نمطاً معروفاً. الثغرة كانت في التركيب، والتركيب هو بالضبط ما يقع بين الفرق المختلفة. صندوق Lambda الرملي، ECR و IAM، رمز GitLab CI، نشر NPM، المتصفح - كل منها مملوك لفريق مختلف، وكل فريق يمكنه النظر إلى الجزء الخاص به ويستنتج بشكل معقول أنه بخير. الخطر لا يظهر إلا عندما تتتبع مساراً عبرها جميعاً."
الخلاصة هي أنه لا يوجد فريق واحد كان يملك ثغرة فردية. فريق Lambda لم يرَ مشكلة في استخراج الذاكرة لأن الرمز كان يفترض أن يكون خارج النطاق. فريق IAM رأى دوراً محصوراً بإجراءات قراءة فقط على ECR. فريق CI/build مرر رمز NPM كمعامل بناء. فريق NPM أدار رمزاً بصلاحية كتابة. فريق المتصفح قام بتحميل حزمة تصميم. كل قرار كان معقولاً بذاته، لكن السلسلة عبر الأنظمة الخمسة كانت كارثية .
هذا يوضح أن مراجعات الهوية والصلاحيات يجب أن تتعقب مسارات الهجوم عبر حدود الأنظمة، بدلاً من تدقيق صلاحيات كل مكون بمعزل عن الآخر. تحتاج المؤسسات إلى مراجعات أمنية عابرة للفرق لفحص كيف يمكن لتكوينات تبدو غير ضارة أن تتركب لتشكل سلاسل هجوم خطيرة عندما تتفاعل الأنظمة معاً .
Comments
0 comments