
CVE-2023-0179 के लिए शोषण, Linux nftables सबसिस्टम में एक स्टैक बफर ओवरफ्लो, modprobe_path अधिलेखन के माध्यम से अविशेषाधिकृत स्थानीय विशेषाधिकार वृद्धि को रूट तक सक्षम करता है।
इस रिपॉजिटरी में मेरे द्वारा हाल ही में खोजी गई nftables उपप्रणाली में कमजोरी का शोषण शामिल है, जिसे CVE-2023-0179 निर्धारित किया गया था, जो Linux के सभी संस्करणों 5.5 से 6.2-rc3 तक को प्रभावित करता है, हालांकि शोषण का परीक्षण 6.1.6 पर किया गया था।
कमजोरी के विवरण और लेख oss-security पर पाए जा सकते हैं
बस make needle कमांड का उपयोग करके संबंधित निष्पादन योग्य फ़ाइल उत्पन्न करें।
निर्माण की सफलता के लिए libmnl और libnftnl आवश्यक हैं:
sudo apt-get install libmnl-dev libnftnl-dev
शोषण एक अविशेषाधिकार प्राप्त उपयोगकर्ता और नेटवर्क नेमस्पेस में प्रवेश करेगा और rule_add_payload फ़ंक्शन के माध्यम से एक nft_payload एक्सप्रेशन जोड़ेगा, जिसका मूल्यांकन करने पर स्टैक बफर ओवरफ्लो को ट्रिगर करके रजिस्टरों को अधिलेखित कर देगा।
इसके बाद सामग्री निम्नलिखित nft कमांड से प्राप्त की जाती है:
nft list map netdev mytable myset12
आउटपुट कर्नेल डेटा संरचनाओं से संबंधित कई फेरबदल किए गए पतों को लीक करेगा, जिनमें से हमें एक कर्नेल निर्देश पता और regs पॉइंटर मिलता है।
शोषण modprobe_path वेरिएबल का दुरुपयोग करके UID 0 वाला एक नया उपयोगकर्ता खाता needle:needle बनाता है।
रूट विशेषाधिकारों का आनंद लें।
libnftnl कार्यान्वयन और विस्तृत ब्लॉग पोस्ट