
CVE-2023-0179 के लिए शोषण (Exploit)। यह भेद्यता CVE-2023-0179 के रूप में निर्दिष्ट की गई है, जो 5.5 से 6.2-rc3 तक के सभी Linux संस्करणों को प्रभावित करती है; इस भेद्यता का परीक्षण 6.1.6 पर किया गया था। भेद्यता के विवरण और लेख os-security पर पाए जा सकते हैं।
इस रिपॉजिटरी में nftables सबसिस्टम में मेरे द्वारा हाल ही में खोजी गई भेद्यता का एक्सप्लॉइट है, जिसे CVE-2023-0179 सौंपा गया था, जो 5.5 से 6.2-rc3 तक के सभी Linux संस्करणों को प्रभावित करती है, हालाँकि एक्सप्लॉइट का परीक्षण 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 इम्प्लीमेंटेशन और विस्तृत ब्लॉग पोस्ट