
DirtyFrag (CVE-2026-43284) के लिए प्रयोगशाला पहचान अभ्यास - xfrm-ESP पेज कैश भ्रष्टाचार के माध्यम से लिनक्स कर्नेल विशेषाधिकार वृद्धि। शोषण निष्पादन, पहचान अंतराल, और Elastic Stack का उपयोग करके सही किए गए EQL नियमों को कवर करने वाला पूर्ण विवरण।
वर्गीकरण: आंतरिक लैब - CyberLAB
तिथि: 24 मई 2026
प्लेटफॉर्म: Elastic Stack v9.4.1
स्थिति: डिटेक्शन की पुष्टि हुई
एक नियंत्रित शोषण अभ्यास जो DirtyFrag (CVE-2026-43284), एक Linux कर्नेल विशेषाधिकार वृद्धि भेद्यता का उपयोग करके प्रारंभिक पहुँच के बाद के प्रतिद्वंद्वी का अनुकरण करता है। अनुकरणित हमलावर परिदृश्य: फिश किए गए क्रेडेंशियल्स के माध्यम से प्राप्त निम्न-विशेषाधिकार उपयोगकर्ता (saskia, uid=1001) एक आंतरिक Linux होस्ट पर रूट तक विशेषाधिकार वृद्धि का प्रयास करता है। लैब ने उत्पादन नेटवर्क से पृथक एक जानबूझकर कमजोर Ubuntu मशीन (ubuntu-vuln, कर्नेल 6.0.0-22-generic) का उपयोग किया।
हमलावर ने लैब वातावरण में पूर्ण रूट एक्सेस (uid=0) प्राप्त किया। Elastic Security डिटेक्शन स्टैक ने 3 HIGH-गंभीरता अलर्ट (जोखिम स्कोर 73) उत्पन्न किए, जो शोषण श्रृंखला की सही पहचान करते हैं। हालांकि, डिटेक्शन के लिए मैनुअल ट्यूनिंग की आवश्यकता थी - आउट-ऑफ-द-बॉक्स कॉन्फ़िगरेशन में अंतराल थे जिसके परिणामस्वरूप अलर्ट छूट जाते।
मुख्य बात: कर्नेल <= 6.x चलाने वाले अप्रबंधित Linux होस्ट कमजोर हैं। यदि किसी हमलावर के पास पहले से निम्न-विशेषाधिकार पकड़ है, तो यह शोषण उन्हें चुपचाप और जल्दी से पूर्ण रूट देता है, जिसमें फ़ाइल अखंडता उपकरणों को दिखाई देने वाला कोई डिस्क-आधारित निशान नहीं होता।
| आइटम | विवरण |
|---|---|
| भेद्यता | DirtyFrag - CVE-2026-43284 (xfrm-ESP पथ), CVE-2026-43500 (RxRPC पथ) |
| CVSS प्रभाव | रूट तक पूर्ण स्थानीय विशेषाधिकार वृद्धि |
| प्रभावित कर्नेल | Linux कर्नेल >= जनवरी 2017 (9 वर्ष का जीवनकाल) |
| प्रभावित वितरण | Ubuntu 24.04.4, RHEL 10.1, AlmaLinux 10, openSUSE, CentOS Stream 10, Fedora 44 |
| फ़ाइल अखंडता बाईपास | डिस्क पर फ़ाइलें अपरिवर्तित - AIDE, Tripwire, हैश मॉनिटरिंग सभी साफ़ रिपोर्ट करते हैं |
| सार्वजनिक PoC | उपलब्ध (GitHub पर V4bel/dirtyfrag) |
| रूट तक समय | निम्न-विशेषाधिकार पकड़ से < 10 मिनट |
auditd नियम कोई सबूत उत्पन्न नहीं करते। socket, splice, और unshare के लिए स्पष्ट syscall नियमों के बिना, शोषण चुपचाप चलता है - कोई लॉग, कोई अलर्ट नहीं। डिफ़ॉल्ट Elastic Agent तैनाती स्वचालित रूप से ये नियम नहीं जोड़ती।process.parent.pid को सहसंबंध कुंजी के रूप में उपयोग किया। व्यवहार में, DirtyFrag मध्यवर्ती प्रक्रियाओं को फोर्क करता है, जिससे वह सहसंबंध टूट जाता है। इस अभ्यास के दौरान auditd.session द्वारा सहसंबंधित करने का समाधान पहचाना और कार्यान्वित किया गया।/etc/shadow पढ़ा, SSH अधिकृत कुंजियों तक पहुंच बनाई, एक स्थायित्व मार्कर (/root/pwned.txt) लिखा, और nc के माध्यम से नेटवर्क टोही शुरू की। ये सब प्रारंभिक पहुंच के 30 मिनट के भीतर हुआ।| प्राथमिकता | कार्रवाई |
|---|---|
| तत्काल | सभी होस्ट पर Linux कर्नेल को एक निश्चित संस्करण में पैच करें। Ubuntu, RHEL, AlmaLinux, openSUSE, CentOS, Fedora के लिए विक्रेता सुरक्षा सलाहकार लागू करें। |
| अल्पकालिक | Elastic Agent द्वारा निगरानी किए गए सभी Linux होस्ट पर socket, splice, और unshare के लिए स्पष्ट auditd syscall नियम तैनात करें। |
| अल्पकालिक | नेमस्पेस-हेरफेर अनुक्रमों के लिए process.parent.pid के बजाय auditd.session द्वारा सहसंबंधित करने के लिए EQL डिटेक्शन नियम अपडेट करें। |
| निरंतर | जोखिम स्कोर >= 73 वाले विशेषाधिकार वृद्धि अलर्ट को उच्च-प्राथमिकता ट्राइएज मानें। वर्तमान नियम वृद्धि के सेकंड के भीतर सक्रिय होता है। |
उद्देश्य: होम लैब SOC में DirtyFrag शोषण के लिए डिटेक्शन कवरेज को मान्य करना, डिटेक्शन अंतराल की पहचान करना, और देखे गए हमलावर व्यवहार पर आधारित एक सुधारित डिटेक्शन नियम तैयार करना।
खतरा मॉडल: फिश किए गए क्रेडेंशियल्स के साथ प्रारंभिक पहुँच के बाद के प्रतिद्वंद्वी का अनुकरण, जो निम्न-विशेषाधिकार उपयोगकर्ता खाते (saskia, uid=1001) के लिए है। लक्ष्य: xfrm-ESP प्राप्त पथ का उपयोग करके DirtyFrag के माध्यम से रूट तक विशेषाधिकार वृद्धि। लैब निष्पादन Proxmox कंसोल के माध्यम से किया गया - कार्यात्मक रूप से SSH पोस्ट-एक्सेस के बराबर।
हमलावर क्षमता के दो स्तरों पर विचार किया गया:
इस अभ्यास ने Vanilla स्तर को कवर किया।
DirtyFrag संबंधित Linux कर्नेल बग्स के एक परिवार में तीसरा है जो सभी एक ही मूल कारण का दुरुपयोग करते हैं:
| CVE | उपनाम | प्रस्तुत किया गया | पथ |
|---|---|---|---|
| CVE-2022-0847 | Dirty Pipe | - | pipe |
| CVE-2026-31431 | Copy Fail | - | splice |
| CVE-2026-43284 | DirtyFrag | जनवरी 2017 (कमिट cac2661c53f3) | xfrm-ESP |
| CVE-2026-43500 | DirtyFrag | जून 2023 (कमिट 2dc334f1a63a) | RxRPC |
मूल कारण: IPv4/IPv6 डेटाग्राम अपेंड पथ ने skb_splice_from_iter() द्वारा पेज कैश पेज को सॉकेट बफर (sk_buff) में रोपने के बाद SKBFL_SHARED_FRAG सेट नहीं किया। फिर ESP इनपुट पथ ने हमलावर-नियंत्रित पेज कैश पेजों पर इन-प्लेस क्रिप्टो किया, उन्हें सामान्य अक्लोन्ड नॉन-लीनियर skbs के रूप में मानते हुए।
शोषण प्रिमिटिव: पेज कैश में 4 या 8-बाइट नियंत्रित लेखन। नियतात्मक - किसी रेस कंडीशन की आवश्यकता नहीं।
शोषण श्रृंखला:
/usr/bin/su) को पेज कैश में पढ़ता हैsplice() के माध्यम से एक पैकेट बनाता है ताकि फ़ाइल का पेज struct sk_buff के frag[0] में बैठेxfrm-ESP डिक्रिप्ट पथ पर पहुंचाता हैexecve() सहित - दूषित बाइट्स लौटाते हैंमहत्वपूर्ण चोरी गुण: डिस्क पर फ़ाइल कभी संशोधित नहीं होती। फ़ाइल अखंडता निगरानी उपकरण (AIDE, Tripwire, हैश जांच) सभी लक्ष्य फ़ाइल को साफ़ रिपोर्ट करते हैं।
पुष्टि किए गए कमजोर वितरण: Ubuntu 24.04.4, RHEL 10.1, AlmaLinux 10, openSUSE Tumbleweed, CentOS Stream 10, Fedora 44.
| घटक | विवरण |
|---|---|
| Fleet Server / ELK होस्ट | ubuntu-tm / elk-docker - 172.66.66.30 (लैब-आंतरिक) |
| Elastic Stack | v9.4.1 (Elasticsearch, Kibana, Logstash - Docker) |
| लक्ष्य (पीड़ित) होस्ट | ubuntu-vuln - 172.66.66.27 |
| पीड़ित कर्नेल | 6.0.0-22-generic (कमजोर) |
| पीड़ित उपयोगकर्ता | saskia - uid=1001, groups=1001(saskia),27(sudo),100(users) |
| Elastic Agent | v9.4.1 with auditbeat |
| Network IDS | Suricata 8.0.5 on dedicated sensor |
| Kibana | http://172.66.66.30:5601 (लैब-आंतरिक) |
अभ्यास के समय सक्रिय टेलीमेट्री:
| डेटासेट | हिस्सा |
|---|---|
suricata.eve | 75.2% |
elastic_agent.fleet_server | 10.8% |
elastic_agent | 9.1% |
elastic_agent.filebeat | 1.9% |
elastic_agent.auditbeat | 1.4% |
auditd_manager.auditd | 0.5% |
system.auth | 0.2% |
system.syslog | 0.1% |
अभ्यास से पहले लैब नेटवर्क को अलग किया गया। फ़ायरवॉल उपनाम Cyber_escape_door अक्षम होने की पुष्टि की गई - अन्य VLAN या इंटरनेट तक पार्श्व पहुंच को रोकता है।