
CVE-2021-4034 (PwnKit) के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, Polkit के pkexec उपयोगिता में एक स्थानीय विशेषाधिकार वृद्धि भेद्यता जो अधिकांश लिनक्स वितरणों को प्रभावित करती है।
Polkit का PoC
Policy Toolkit (या Polkit) 2009 में लॉन्च होने के बाद से किसी भी हमलावर को बिना रूट अनुमतियों के Polkit पैकेज वाले किसी भी Linux सिस्टम पर आसानी से प्रशासनिक पहुँच प्राप्त करने की अनुमति देता है। दुर्भाग्य से, (या नहीं) यह अधिकांश Linux वितरणों में डिफ़ॉल्ट रूप से स्थापित है। जिससे यह भेद्यता व्यापक हो गई है।
सौभाग्य से, (या नहीं) इस भेद्यता का दूर से शोषण नहीं किया जा सकता है, जो इसे एक स्थानीय विशेषाधिकार वृद्धि (LPE) भेद्यता बनाता है।
Polkit अधिकांश Linux प्राधिकरण प्रणालियों का हिस्सा है। जब भी कोई ऐसी कार्रवाई की जाती है जिसके लिए प्रशासनिक अनुमति की आवश्यकता होती है, Polkit यह निर्धारित करता है कि कार्रवाई को निष्पादित करने के लिए आवश्यक अनुमतियाँ हैं या नहीं। यह systemd (init का प्रतिस्थापन) में एकीकृत है। वास्तव में, THM के अनुसार, Systemd को "systemd का sudo" कहा जाता है।
जब हम Polkit के साथ इंटरैक्ट करते हैं, तो हम pkexec (वह प्रोग्राम जिसमें Pwnkit भेद्यता है) का उपयोग कर सकते हैं। उदाहरण के रूप में, जब हम GUI सत्र में pkexec के साथ useradd चलाने का प्रयास करते हैं, तो एक विंडो दिखाई देती है जो क्रेडेंशियल माँगती है। CLI में हम कुछ इस प्रकार देख सकते हैं:
user@user:~$ pkexec useradd test1
==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authentication is needed to run '/usr/sbin/useradd' as the super user
Authenticating as: user,,, (user)
Password:
जाहिर है, Canonical ने पहले ही APT पैकेज प्रबंधक में इस पैकेज के पैच किए गए संस्करण जारी कर दिए हैं। यदि किसी वितरण में पैच किए गए संस्करण प्रकाशित नहीं हुए हैं, तो बस pkexec से SUID बिट हटा दें।
sudo chmod 0777 'which pkexec'