
CVE-2026-43284 और CVE-2026-43500 Dirty Frag PoC और एक्सप्लॉइट
CVE-2026-43284 (XFRM/ESP) और CVE-2026-43500 (RxRPC/RXKAD) के लिए पठनीय N4C डेमॉन्स्ट्रेटर।
यह PoC एक प्रश्न का उत्तर देता है: क्या एक अनप्रिविलेज्ड प्रक्रिया रूट-स्वामित्व वाली, केवल-पठनीय फ़ाइल के पेज कैश को साझा sk_buff फ्रैगमेंट के माध्यम से बदल सकती है?
यह /usr/bin/su या /etc/passwd को ओवरराइट नहीं करता, पेलोड इंस्टॉल नहीं करता, PAM/NSS को कॉल नहीं करता, या शेल शुरू नहीं करता। पूरा सार्वजनिक एक्सप्लॉइट exploit ब्रांच पर बना हुआ है।
dirtyfrag-poc.c — दो पेज-कैश प्रिमिटिव और एक छोटा CLI।prepare-lab.sh — दो हानिरहित रूट-स्वामित्व वाले फिक्स्चर बनाता है।run_as_1000.c / run-as-1000 — VM के रूट शेल को uid/gid 1000 पर गिरा देता है।Makefile — प्रतिलिपि योग्य स्टैटिक बिल्ड।--esp)केवल-पठनीय फिक्स्चर
-> splice(file -> pipe -> UDP socket)
-> skb paged frag
-> ESP authencesn इन-प्लेस STORE
-> पहले चार कैश्ड बाइट्स "N4C!" बन जाते हैं
केवल एक XFRM SA और एक चार-बाइट राइट का उपयोग किया जाता है। सार्वजनिक एक्सप्लॉइट से रूट-शेल ELF और इसका 48-ट्रिगर असेंबली लूप हटा दिया गया था।
--rxrpc)केवल-पठनीय फिक्स्चर
-> splice(file -> forged RxRPC DATA packet)
-> RXKAD pcbc(fcrypt) इन-प्लेस डिक्रिप्ट
-> एक कुंजी-चयनित 8-बाइट राइट
-> कैश्ड बाइट्स मूल फिक्स्चर से भिन्न होते हैं
PoC पासवर्ड-आकार के प्लेनटेक्स्ट की खोज नहीं करता क्योंकि कोई भी बदला हुआ आठ-बाइट ब्लॉक पहले से ही प्रिमिटिव को साबित करता है। ऑफ़लाइन fcrypt ब्रूट-फोर्स, ओवरलैपिंग-राइट प्लानर, PAM, getent, पासवर्डलेस su, PTY हैंडलिंग, और शेल कोड हटा दिए गए थे।
केवल एक डिस्पोज़ेबल, अधिकृत Linux VM में उपयोग करें जिसमें आवश्यक कर्नेल सुविधाएँ हों।
make
# VM के रूट उपयोगकर्ता के रूप में एक बार चलाएँ ताकि ज्ञात फिक्स्चर बाइट्स फिर से बन सकें।
./prepare-lab.sh
# हेल्पर फिर PoC को uid/gid 1000 के रूप में चलाता है।
./run-as-1000 ./dirtyfrag-poc --esp --verbose
./prepare-lab.sh
./run-as-1000 ./dirtyfrag-poc --rxrpc --verbose
एग्ज़िट स्थिति:
0 — मार्कर पेज कैश में दिखाई दिया; प्रिमिटिव देखा गया।1 — मार्कर दिखाई नहीं दिया; साझा-फ्रैग राइट अस्वीकार कर दिया गया।2 — अमान्य फिक्स्चर, असमर्थित वातावरण, या सेटअप विफलता।3 — सत्यापन से पहले RxRPC ट्रिगर विफल रहा।रनों के बीच फिक्स्चर को फिर से बनाएँ, या डिस्पोज़ेबल VM को रिबूट करें।
main() एक प्रिमिटिव चुनता है और uid 0 के रूप में चलने से इनकार करता है।esp_poc() चार-बाइट XFRM/ESP मामले को दिखाता है।rxrpc_poc() एक ट्रिगर और सीधी पहले/बाद की तुलना दिखाता है।प्रोटोकॉल निर्माण Linux कर्नेल स्रोत और सार्वजनिक V4bel/dirtyfrag संदर्भ कार्यान्वयन से कमिट aab16fcada27142dd8ce8704906cf6736cf213b8 पर व्युत्पन्न किया गया था। N4C ने निष्पादन प्रवाह को इस फिक्स्चर-ओनली डेमॉन्स्ट्रेटर में फिर से लिखा और विशेषाधिकार-वृद्धि पेलोड और उपभोक्ता चरणों को हटा दिया।