ترجمة آلية لم تُراجَع بعد. النص الإنجليزي هو المرجع في حال الاختلاف.
الملخص
تطبيق Atlantis المضاف ذاتياً والمكتوب بلغة golang يستمع إلى أحداث طلبات سحب Terraform عبر خطافات الويب. من الإصدار 0.4.0 وحتى الإصدار 0.47.1، يمرر Atlantis قيمة مساحة العمل المتحكم بها في طلب السحب من atlantis.yaml إلى وسائط أمر Terraform التي يتم دمجها باستخدام strings.Join(args, " ") وتنفذ عبر sh -c. يمكن لمساهم مصادق عليه يكون طلب السحب الخاص به مؤهلاً لتخطيط Atlantis تضمين رموز shell في اسم مساحة العمل، مما يتسبب في تنفيذ شيفرة عشوائية بصلاحيات حساب خدمة Atlantis دون الحاجة إلى سير عمل مخصص، أو إذن تطبيق، أو مزود Terraform ضار. يمكن للمساهمين الخارجيين الوصول إلى الثغرة من خلال طلبات سحب الفروع الخارجية فقط عند تفعيل الخيار --allow-fork-prs، بينما لا تتطلب فروع المستودع نفسه المؤهلة هذا الخيار. ترث الأوامر بيئة عملية Atlantis ويمكنها الوصول إلى بيانات اعتماد مزود السحابة، وTerraform، والتحكم بالإصدارات بالإضافة إلى الملفات والحالة وموارد الشبكة المتاحة للخدمة. تم إصلاح هذه المشكلة في الإصدار 0.47.1.
المعالجة
المراجع
- مرجعhttps://github.com/runatlantis/atlantis/security/advisories/GHSA-rjh2-4xgw-p2hj
- مرجعhttps://github.com/runatlantis/atlantis/pull/6792
- مرجعhttps://github.com/runatlantis/atlantis/commit/8dd22b4d0a9d7c129fdbf6a3398dd1c4cf8c3a59
- مرجعhttps://github.com/runatlantis/atlantis/commit/f04df0d53f0544d9eb6f5026dd8b74fbefd82ac8
- مرجعhttps://github.com/runatlantis/atlantis/releases/tag/v0.47.1