
CVE-2017-7184 के लिए प्रूफ-ऑफ-कॉन्सेप्ट स्थानीय विशेषाधिकार वृद्धि शोषण, एक Linux कर्नेल XFRM नेटलिंक स्टैक ओवरफ्लो। नेमस्पेस दुरुपयोग और कर्नेल ROP का प्रदर्शन करता है ताकि sudo के बिना रूट प्राप्त किया जा सके।
इस रिपॉजिटरी में CVE-2017-7184 के लिए एक प्रमाण-अवधारणा स्थानीय विशेषाधिकार वृद्धि शोषण है, जो XFRM (IPsec) नेटलिंक उपप्रणाली में एक लिनक्स कर्नेल भेद्यता है।
शोषण दर्शाता है कि कैसे एक अननुदानित उपयोगकर्ता निम्नलिखित द्वारा वास्तविक रूट (UID 0) प्राप्त कर सकता है:
एक अननुदानित उपयोगकर्ता + नेटवर्क नामस्थान बनाना
नामस्थान के अंदर CAP_NET_ADMIN प्राप्त करना
XFRM नेटलिंक हैंडलिंग में कर्नेल स्टैक ओवरफ्लो ट्रिगर करना
कॉल करने के लिए एक कर्नेल ROP श्रृंखला निष्पादित करना:
prepare_kernel_cred(NULL)commit_creds()पूर्ण रूट विशेषाधिकारों के साथ उपयोगकर्ता भूमि पर सुरक्षित वापस लौटना
कोई सुडो आवश्यक नहीं है।
| फील्ड | मान |
|---|---|
| CVE | CVE-2017-7184 |
| घटक | लिनक्स कर्नेल – XFRM नेटलिंक |
| बग प्रकार | कर्नेल स्टैक ओवरफ्लो |
| प्रभाव | स्थानीय विशेषाधिकार वृद्धि |
| आक्रमण वेक्टर | स्थानीय (अननुदानित उपयोगकर्ता) |
| शोषण वर्ग | नामस्थान दुरुपयोग + ROP |
| पहला प्रभावित | लिनक्स कर्नेल ≤ 4.8 |
| में ठीक किया गया | 2017 में जारी कर्नेल पैच |
अननुदानित उपयोगकर्ता नामस्थान
unshare(CLONE_NEWUSER | CLONE_NEWNET) का उपयोग करता हैCAP_NET_ADMIN प्रदान करता हैXFRM नेटलिंक दुरुपयोग
NETLINK_XFRM सॉकेट बनाता हैXFRM_MSG_NEWSA संदेश भेजता हैकर्नेल ROP निष्पादन
उपयोगकर्ता भूमि पर वापसी
swapgs; iretq का उपयोग करता हैunprivileged_userns_clone = 1gccनामस्थान समर्थन की जाँच करें:
cat /proc/sys/kernel/unprivileged_userns_clone
अपेक्षित आउटपुट:
1
gcc exploit.c -o exploit -pthread
./exploit
सुडो का उपयोग न करें।
यदि सफल हो, तो आपको एक वास्तविक रूट शेल प्राप्त होगा:
uid=0(root) gid=0(root) groups=0(root)
शोषण प्रयास करता है:
/proc/kallsyms से प्रतीक लीक करें
यदि प्रतिबंधित हो, तो हार्डकोडेड ऑफ़सेट पर वापस आएं:
commit_credsprepare_kernel_cred⚠️ ROP गैजेट और ऑफ़सेट कर्नेल-संस्करण विशिष्ट हैं। आपको उन्हें अन्य बिल्ड के लिए समायोजित करना होगा।
यह अभी भी पुष्टि करता है कि सिस्टम भेद्य है।
sysctl -w kernel.unprivileged_userns_clone=0
यह कोड केवल शैक्षिक और सुरक्षा अनुसंधान उद्देश्यों के लिए प्रदान किया गया है।
commit_creds शोषण