Portainer Community Edition
تقبل ميزة استعادة النسخ الاحتياطي أرشيفًا بتنسيق `.tar.gz` وتقوم باستخراجه إلى دليل هدف على الخادم. تقوم دالة الاستخراج `ExtractTarGz()` الموجودة في `api/archive/targz.go` بإنشاء مسارات الإخراج باستخدام `filepath.Clean(filepath.Join(outputDirPath, header.Name))`، والتي تفشل في منع اجتياز الدليل. يمكن لأرشيف مُعدّ خصيصًا يحتوي على إدخالات مثل `../../etc/cron.d/evil` أن يُحل إلى مسارات خارج جذر الاستخراج، مما يسمح للمهاجم الذي يتمتع بحقوق وصول المسؤول بكتابة ملفات في مواقع عشوائية على نظام ملفات الخادم. وقد يؤدي ذلك إلى كتابة ملفات عشوائية في أي مسار يمكن لعملية Portainer الوصول إليه، وإمكانية الاستمرار على المضيف من خلال الكتابة إلى دلائل cron، أو ملفات مفاتيح SSH المصرح بها، أو مسارات الملفات القابلة للتنفيذ.