
CVE-2025-6019: udisks2 XFS Resize TOCTOU विशेषाधिकार वृद्धि
इस रिपॉजिटरी में CVE-2025-6019 के लिए एक प्रूफ ऑफ कॉन्सेप्ट (PoC) है, जो udisks2 में एक रेस कंडीशन भेद्यता है जो XFS फाइलसिस्टम रिसाइज़िंग के माध्यम से स्थानीय विशेषाधिकार वृद्धि की अनुमति देती है।
यह एक्सप्लॉइट किसी भी Linux सिस्टम के लिए सार्वभौमिक होने के लिए डिज़ाइन किया गया है जो निम्नलिखित मानदंडों को पूरा करता है:
यह एक्सप्लॉइट निम्नलिखित कॉन्फ़िगरेशन पर सत्यापित किया गया है:
weapon.py स्क्रिप्ट स्वचालित रूप से पर्यावरण PATH सेटअप को संभालती है ताकि mkfs.xfs का पता लगाया जा सके, जो आमतौर पर sbin तक प्रतिबंधित है।एक्सप्लॉइटेशन के लिए प्रोटोफाइल के साथ बनाई गई एक विशेष रूप से तैयार XFS इमेज की आवश्यकता होती है। यह हमें एक फाइलसिस्टम संरचना परिभाषित करने की अनुमति देता है जिसमें इमेज निर्माण चरण के दौरान रूट विशेषाधिकारों की आवश्यकता के बिना एक SUID रूट बाइनरी (pwnbash) शामिल होती है। mkfs.xfs -p फ्लैग इस टेम्पलेट का उपयोग करके SUID बिट को सीधे इमेज के मेटाडेटा में बेक करता है।
रिमोट सत्रों (SSH, Docker) में मानक उपयोगकर्ता udisks2 का उपयोग करने से प्रतिबंधित हैं। स्थानीय सत्र (seat0) को स्पूफ करने के लिए यह स्क्रिप्ट चलाएँ:
python3 bypass.py
weapon.py का उपयोग करके SUID इमेज बनाएँ। यह स्क्रिप्ट XFS प्रोटोफाइल का उपयोग करके 4755 अनुमतियों वाला एक शेल एम्बेड करती है।
python3 weapon.py
udisks2 को D-Bus रिसाइज़ अनुरोधों से भरना शुरू करने के लिए trigger.sh निष्पादित करें। यह डेमन को /tmp/blockdev.XXXXXX में अस्थायी माउंट पॉइंट बनाने के लिए मजबूर करता है।
chmod +x trigger.sh ./trigger.sh
चूंकि स्वचालित स्क्रिप्ट संसाधन-सीमित वातावरण में अस्थिर हो सकती हैं, इसलिए मैन्युअल विधि की सिफारिश की जाती है:
/tmp में अस्थायी माउंट पॉइंट्स की निगरानी करें:
watch -n 0.1 "ls -la /tmp"
लक्ष्य की पहचान करें: डिफ़ॉल्ट हार्डनड drwx------ के बजाय वर्ल्ड-रीडेबल अनुमतियों (जैसे, drwxr-xr-x) वाली निर्देशिका देखें।
पेलोड निष्पादित करें: पहचान होने के बाद, निर्देशिका में जाएँ और शेल निष्पादित करें:
cd /tmp/blockdev.Q797J3 # Example directory name ./pwnbash -p
परिणाम: यदि निष्पादन रेस विंडो के भीतर होता है (nosuid फ्लैग लागू होने से पहले), तो आपको रूट शेल प्रदान किया जाएगा।
bypass.py: ~/.pam_environment के माध्यम से स्थानीय सत्र (seat0) को स्पूफ करने और Polkit प्रतिबंधों को बायपास करने के लिए कॉन्फ़िगरेशन स्क्रिप्ट।
weapon.py: XFS प्रोटोफाइल टेम्पलेट का उपयोग करने वाला SUID इमेज जनरेटर।
trigger.sh: udisks2 फाइलसिस्टम रिसाइज़िंग के लिए D-Bus रेस कंडीशन ट्रिगर।
विस्तृत जानकारी के लिए: 👉 NetaCoding - https://netacoding.com/posts/udisks2-cve_lpe/
यह प्रोजेक्ट केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण उद्देश्यों के लिए है। कंप्यूटर सिस्टम तक अनधिकृत पहुँच अवैध है।