
यह रिपॉजिटरी CVE-2021-4034 कमजोरी का शोषण करने का तरीका दिखाता है।
यह रिपॉजिटरी CVE-2021-4034 (जिसे PwnKit भी कहा जाता है) की शोषण को प्रदर्शित करने के लिए स्रोत कोड प्रदान करती है, जो pkexec (Polkit पैकेज का हिस्सा) में खोजी गई थी। यह दोष दुर्भावनापूर्ण पर्यावरण चरों का उपयोग करके रूट तक स्थानीय विशेषाधिकार वृद्धि की अनुमति देता है।
यह कोड केवल शैक्षिक और अनुसंधान उद्देश्यों के लिए प्रदान किया गया है। इसका उपयोग उत्पादन प्रणालियों पर या स्पष्ट प्राधिकरण के बिना नहीं किया जाना चाहिए। दुरुपयोग अवैध हो सकता है और लेखक के उपयोग की शर्तों के विरुद्ध है।
जब pkexec बिना तर्कों के निष्पादित किया जाता है, अर्थात argc == 0, तब यह भेद्यता उत्पन्न होती है। इस मामले में, pkexec बिना यह जांचे कि argv[0] मौजूद है, argv[1] तक पहुंचने का प्रयास करता है, जिसके परिणामस्वरूप यह envp[0] से पढ़ता है। यह हमलावर को अनुमति देता है:
GCONV_PATH जैसे पर्यावरण चरों को पढ़ना और अधिलेखित करना।.so लाइब्रेरी लोड करने के लिए बाध्य करना।एक्सप्लॉइट इस स्थिति का लाभ उठाकर एक दुर्भावनापूर्ण लाइब्रेरी लोड करता है जो रूट उपयोगकर्ता के रूप में एक शेल खोलती है।
cve-2021-4034.c: एक्सप्लॉइट का स्रोत कोड जो argv[] = {NULL} और संशोधित पर्यावरण चरों के साथ pkexec को आमंत्रित करता है।pwnkit.c: दुर्भावनापूर्ण लाइब्रेरी का स्रोत कोड जो रूट के रूप में एक शेल खोलता है।gcc -Wall -o cve-2021-4034 cve-2021-4034.c
gcc -Wall -shared -fPIC -o pwnkit.so pwnkit.c
mkdir GCONV_PATH=.
echo 'module UTF-8// PWNKIT// pwnkit 1' > gconv-modules
cp $(which true) GCONV_PATH=./pwnkit.so:.
./cve-2021-4034