
CVE-2026-31431 (Copy Fail) के लिए C एक्सप्लॉइट जो Linux AF_ALG splice कमजोरी को लक्षित करता है। इसमें डिटेक्शन टेस्ट और /usr/bin/su पेज कैश मैनिपुलेशन के माध्यम से विशेषाधिकार वृद्धि शामिल है ताकि रूट शेल प्राप्त किया जा सके।
CVE-2026-31431 (Copy Fail) C भाषा PoC, तार्किक रूप से theori-io/copy-fail-CVE-2026-31431 मूल Python exploit के साथ संरेखित।
केवल अधिकृत सुरक्षा अनुसंधान और प्रयोगशाला वातावरण के लिए। अनधिकृत प्रणालियों पर उपयोग प्रतिबंधित।
Linux AF_ALG में authencesn(hmac(sha256),cbc(aes)), splice + AEAD पथ के तहत, AAD में 4 बाइट्स को लक्ष्य फ़ाइल के पेज कैश में लिख सकता है (डिस्क सामग्री अपरिवर्तित)।
इस रिपॉजिटरी का एक्सप्लॉइट व्यवहार मूल संस्करण के समान है:
/usr/bin/su के पेज कैश में zlib डीकंप्रेस्ड माइक्रो ELF को 4 बाइट्स में लिखेंsu निष्पादित करें, संशोधित पेज कैश द्वारा नकली su लोड किया जाता है, आमतौर पर बिना पासवर्ड के root शेल प्राप्त होता हैcopy-fail/
├── include/
│ ├── copy_fail.h
│ └── su_payload_zlib.h
├── src/
│ ├── alg.c # AF_ALG / splice प्रिमिटिव
│ ├── util.c # पूर्व जाँच
│ ├── test_main.c # भेद्यता जाँच
│ └── exploit_main.c # विशेषाधिकार वृद्धि
├── Makefile
└── README.md
Ubuntu / Debian:
sudo apt install build-essential zlib1g-dev
cd copy-fail
make
उत्पन्न:
| उत्पाद | विवरण |
|---|---|
bin/copy-fail-test | भेद्यता जाँच (अस्थायी sentinel फ़ाइल, सिस्टम फ़ाइलों को संशोधित नहीं करता) |
bin/copy-fail-exploit | विशेषाधिकार वृद्धि (/usr/bin/su पेज कैश संशोधित करने के बाद exec su) |
उच्च संस्करण प्रणाली पर संकलन के बाद, यदि GLIBC_2.34 / GLIBC_2.38 not found दिखाई दे, तो संकलन मशीन पर निष्पादित करें:
make static
bin/copy-fail-test और bin/copy-fail-exploit को लक्ष्य मशीन पर कॉपी करके चलाएँ। आप लक्ष्य मशीन पर स्रोत कोड पर make भी चला सकते हैं (डायनेमिक लिंकिंग, आकार छोटा होता है)।
./bin/copy-fail-test
echo $?
| निकास कोड | अर्थ |
|---|---|
| 0 | कोई भेद्यता विशेषता नहीं दिखती / पूर्व आवश्यकताएँ पूरी नहीं होतीं |
| 2 | भेद्यता विशेषता मौजूद है |
| 1 | परीक्षण प्रक्रिया में त्रुटि |
./bin/copy-fail-exploit
id
कोई आउटपुट न होना सामान्य डिज़ाइन है; सफलता पर root शेल में प्रवेश। विफलता पर echo $? सामान्यतः 1 होता है।
AF_ALG socket बना सकता हैauthencesn(hmac(sha256),cbc(aes)) को bind कर सकता है/usr/bin/su पर पढ़ने की अनुमति हैsplice AF_ALG socket पर लिख सकता हैयदि डिटेक्टर cannot be instantiated (No such file or directory) दिखाता है:
grep -r algif_aead /etc/modprobe.d/
sudo modprobe algif_aead
grep authencesn /proc/crypto
कुछ वितरण modprobe के माध्यम से algif_aead को अक्षम करते हैं (जैसे Ubuntu USN शमन), आवश्यकता है कि root वाली प्रयोग मशीन पर इसे हटाकर फिर से परीक्षण करें।
विशेषाधिकार वृद्धि परीक्षण के बाद (root शेल में) पेज कैश प्रदूषण को हटाया जा सकता है:
echo 3 > /proc/sys/vm/drop_caches
या वर्चुअल मशीन को पुनः प्रारंभ करें।