
CVE-2026-43284 (Dirty Frag) का तकनीकी विश्लेषण, एक Linux kernel xfrm ESP स्थानीय विशेषाधिकार वृद्धि जो root समझौता के लिए read-only फ़ाइलों में page-cache लेखन को सक्षम बनाता है।
Linux कर्नेल में CVE-2026-43284 (Dirty Frag) लोकल प्रिविलेज एस्केलेशन दोष का विस्तृत तकनीकी विश्लेषण।
CVE-2026-43284 (जिसे आमतौर पर Dirty Frag vulnerability suite का हिस्सा कहा जाता है) Linux कर्नेल में एक गंभीर लोकल प्रिविलेज एस्केलेशन (LPE) दोष है। यह xfrm ESP (Encapsulating Security Payload) इनपुट सबसिस्टम के भीतर एक लॉजिक दोष से उत्पन्न होता है। यह बग एक लोकल, अनप्रिविलेज्ड हमलावर को सामान्य Copy-on-Write (CoW) सुरक्षा को बायपास करने और रीड-ओनली सिस्टम फ़ाइलों (जैसे /usr/bin/su) में मनमाना page-cache write primitive प्राप्त करने की अनुमति देता है, जो अंततः पूर्ण root कम्प्रोमाइज़ की ओर ले जाता है।
Vulnerability Breakdown & Attack Vector1.
The Constraint: कर्नेल के IPsec कॉन्फ़िगरेशन के साथ इंटरैक्ट करने के लिए सामान्यतः CAP_NET_ADMIN क्षमता की आवश्यकता होती है, जो सामान्य उपयोगकर्ता के लिए प्रतिबंधित विशेषाधिकार है। The Bypass: एक लोकल अनप्रिविलेज्ड उपयोगकर्ता एक अलग अनप्रिविलेज्ड User Namespace और Network Namespace बना सकता है (CLONE_NEWUSER | CLONE_NEWNET जैसे फ़्लैग्स का उपयोग करके)। इस पृथक अनप्रिविलेज्ड कंटेनर स्पेस के भीतर, हमलावर उस नेमस्पेस की "root" प्रोसेस बन जाता है, जो उन्हें उस सीमित संदर्भ में CAP_NET_ADMIN विशेषाधिकार प्रदान करता है।
कस्टम नेटवर्क नेमस्पेस के भीतर CAP_NET_ADMIN के साथ, हमलावर एक नकली Security Association (SA) और IPsec नीतियाँ कॉन्फ़िगर करता है।
splice(2) या vmsplice(2) जैसे सिस्टम कॉल्स का उपयोग करके, हमलावर एक लक्षित रीड-ओनली फ़ाइल (जैसे, /usr/bin/su) से संबंधित पेजों को एक socket buffer (skb) फ्रैगमेंट में संलग्न करता है।
The Constraint: हमलावर को कर्नेल को esp_input() रूटीन के माध्यम से डेटा पार्स करने के लिए बाध्य करना होगा।
The Strategy: हमलावर एक ESP-in-UDP encapsulation नेटवर्क संरचना बनाता है और ट्रांसमिशन को होस्ट के loopback इंटरफ़ेस (127.0.0.1) पर निर्देशित करता है।
जब पैकेट loopback चैनल के माध्यम से स्थानीय रूप से प्राप्त होता है, तो कर्नेल का नेटवर्किंग स्टैक UDP पैकेट रैपर की पहचान करता है, उसे डिकैप्सुलेट करता है, और आंतरिक पेलोड को प्रोसेसिंग के लिए esp_input() को सौंप देता है।
IPv4/IPv6 datagram append पाथ में एक लॉजिक बग के कारण, UDP सॉकेट्स में पेजों को splice करते समय कर्नेल अंतर्निहित socket buffer फ्रैगमेंट्स को SKBFL_SHARED_FRAG फ़्लैग के साथ ठीक से चिह्नित करने में विफल रहता है।
परिणामस्वरूप, esp_input() पैकेट को एक निजी, अनक्लोन्ड बफ़र के रूप में गलत समझता है और "no-COW" परफ़ॉर्मेंस ऑप्टिमाइज़ेशन फास्ट पाथ लेता है।
डेटा को एक सुरक्षित उपयोगकर्ता बफ़र में कॉपी करने के बजाय, esp_input() सिस्टम के page cache से उधार लिए गए मेमोरी पेजों पर सीधे in-place डिक्रिप्शन करता है
एन्क्रिप्टेड पेलोड डेटा को बारीकी से ट्यून करके और क्रिप्टोग्राफ़िक एल्गोरिदम कॉन्फ़िगरेशन (जैसे Extended Sequence Numbers) का उपयोग करके, डिक्रिप्शन प्रक्रिया page cache में लक्षित बाइनरी को निर्धारित रूप से ओवरराइट कर देती है।
एक बार जब /usr/bin/su जैसी बाइनरी का page cache मेमोरी में हमलावर के पेलोड से दूषित हो जाता है, तो बाइनरी को निष्पादित करने पर वास्तविक भौतिक डिस्क पर संग्रहीत बाइनरी को कभी छुए या संशोधित किए बिना पेलोड root के रूप में निष्पादित हो जाता है।
Impact: प्रमुख एंटरप्राइज़ Linux डिस्ट्रीब्यूशन्स में कर्नेल पैनिक्स के जोखिम के बिना उच्च-विश्वसनीयता, निर्धारित लोकल प्रिविलेज एस्केलेशन।
Remediation: Linux कर्नेल को उन संस्करणों में अपडेट करें जिनमें datagram splices के लिए SKBFL_SHARED_FRAG हैंडलिंग लागू करने वाला पैच शामिल है और ESP प्रोसेसिंग लॉजिक के भीतर skb_cow_data() के लिए एक सुरक्षित फ़ॉलबैक प्रस्तुत करता है।