
# CVE-2026-31431 के लिए Copy Fail PoC का Go पोर्ट Linux कर्नेल की authencesn खामी का शोषण करने वाला Go पोर्ट, जो AF_ALG और splice के माध्यम से पेज कैश में 4-बाइट लेखन को सक्षम बनाता है। इसमें मल्टी-आर्क बिल्ड पाइपलाइन और विस्तृत तकनीकी दस्तावेज़ीकरण शामिल है।
यह रिपॉजिटरी सार्वजनिक कॉपी फेल PoC का एक Go पोर्ट और मल्टी-आर्किटेक्चर लिनक्स बाइनरी के लिए एक प्रतिलिपि प्रस्तुत करने योग्य (reproducible) बिल्ड पाइपलाइन प्रदान करती है।
कॉपी फेल (CVE-2026-31431) authencesn में एक लिनक्स कर्नेल लॉजिक दोष है जो AF_ALG + splice() के माध्यम से संदर्भित पेज कैश डेटा में एक निर्धारणात्मक (deterministic) 4 बाइट लेखन को सक्षम बनाता है।
इस प्रोजेक्ट का उपयोग केवल उन वातावरणों में करें जहाँ आपको परीक्षण करने के लिए स्पष्ट रूप से अधिकृत किया गया है। इस PoC को उन सिस्टमों के विरुद्ध न चलाएँ जिनके स्वामी आप नहीं हैं या जिनके मूल्यांकन के लिए आपके पास लिखित अनुमति नहीं है।
यदि आप स्रोत से बिल्ड किए बिना तुरंत परीक्षण करना चाहते हैं, तो एक रिलीज़ बाइनरी डाउनलोड करें और इसे चलाएँ:
wget https://github.com/ErdemOzgen/copy-fail-cve-2026-31431/releases/download/v1.0.1/copy-fail-cve-2026-31431_linux_amd64
chmod +x copy-fail-cve-2026-31431_linux_amd64
./copy-fail-cve-2026-31431_linux_amd64
अन्य आर्किटेक्चर के लिए, GitHub रिलीज़ पृष्ठ से संबंधित एसेट डाउनलोड करें:
सभी लिनक्स लक्ष्य बनाएँ:
make clean build-linux
बिल्ड करें और चेकसम उत्पन्न करें:
make clean checksums
dist/ में आउटपुट बाइनरी:
copy-fail-cve-2026-31431_linux_amd64copy-fail-cve-2026-31431_linux_arm64copy-fail-cve-2026-31431_linux_386copy-fail-cve-2026-31431_linux_armv7SHA256SUMSडिफ़ॉल्ट रन:
./copy-fail-cve-2026-31431_linux_amd64
कस्टम लक्ष्य पथ का उपयोग करें:
./copy-fail-cve-2026-31431_linux_amd64 -target /path/to/binary
रन के बाद su निष्पादन अक्षम करें:
./copy-fail-cve-2026-31431_linux_amd64 -spawn-su=false
बिल्ड मेटाडेटा प्रिंट करें:
./copy-fail-cve-2026-31431_linux_amd64 -version
यदि निष्पादन ऑफसेट 0 पर निम्न जैसी त्रुटि के साथ विफल होता है:
error: copy chunk at offset 0: splice(pipe->AF_ALG): software caused connection abort
तो कर्नेल ने संभवतः कमजोर AEAD इन-प्लेस पथ को अस्वीकार कर दिया है (उदाहरण के लिए क्योंकि होस्ट CVE-2026-31431 के लिए पैच किया गया है या algif_aead शमित/अक्षम है)।
त्वरित जाँच:
uname -r
grep -E "algif_aead|authencesn" /proc/modules
उपचारित सिस्टमों पर, इस PoC के विफल होने की उम्मीद है।
सार्वजनिक प्रकटीकरण के अनुसार, कमजोर पथ एक अविशेषाधिकार प्राप्त स्थानीय उपयोगकर्ता को विशिष्ट परिस्थितियों में पठनीय फ़ाइलों की पेज कैश सामग्री में 4 बाइट लेखन प्राइमिटिव को प्रभावित करने की अनुमति देता है।
महत्वपूर्ण परिचालन गुण यह है कि मेमोरी में पेज कैश प्रति रनटाइम के दौरान डिस्क पर मौजूद बाइट्स से भिन्न हो सकती है, जो केवल डिस्क स्तर की अखंडता जाँच पर निर्भर टीमों के लिए प्रभाव विश्लेषण को गैर-तुच्छ बना सकती है।
कॉपी फेल उल्लेखनीय है क्योंकि इसे इस रूप में रिपोर्ट किया गया था:
उच्च स्तर पर, यह मुद्दा तीन तंत्रों के प्रतिच्छेदन पर स्थित है:
AF_ALG AEAD अनुरोध हैंडलिंग।splice() पेज कैश समर्थित डेटा संचलन।authencesn डिक्रिप्शन स्क्रैच व्यवहार।कमजोर डिज़ाइन में, पेज कैश समर्थित खंडों को एक अनुरोध आकार में जोड़ा जा सकता है जिसे बाद में एल्गोरिथम प्रसंस्करण के दौरान लेखन प्राप्त होता है, जो इस प्रमुख धारणा का उल्लंघन करता है कि केवल इच्छित गंतव्य क्षेत्रों को संशोधित किया जाता है।
प्रलेखित पथ में, authencesn ESN लेआउट हैंडलिंग के आसपास गंतव्य पक्ष स्क्रैच संचालन का उपयोग करता है और अपेक्षित डिक्रिप्ट आउटपुट अनुबंध से परे एक ऑफसेट पर लेखन करता है।
जब इन-प्लेस AEAD सेटअप और श्रृंखलित स्कैटरलिस्ट संदर्भों के साथ जोड़ा जाता है, तो यह लेखन हमलावर द्वारा चयनित क्षेत्रों के लिए पेज कैश समर्थित मेमोरी में उतर सकता है।
प्रकटीकरण एक बहु-कमिट विकास का वर्णन करता है:
authencesn व्यवहार पहले के एकीकरण इतिहास में उत्पन्न हुआ।AF_ALG AEAD समर्थन ने splice() इंटरैक्शन के साथ यूज़रस्पेस पहुंच क्षमता पेश की।algif_aead में इन-प्लेस अनुकूलन ने स्रोत और गंतव्य प्रवाह को इस तरह संयोजित किया जिससे यह प्रतिच्छेदन शोषण योग्य बन गया।मुख्य सबक रचनात्मक जोखिम है: व्यक्तिगत रूप से उचित परिवर्तन संयोजन में असुरक्षित हो सकते हैं।
सार्वजनिक लेख और PoC इस अनुक्रम का वर्णन करते हैं:
authencesn(hmac(sha256),cbc(aes)) के लिए एक AF_ALG AEAD सॉकेट खोलें और कॉन्फ़िगर करें।splice() का उपयोग करें।इस रिपॉजिटरी का Go कार्यान्वयन अधिकृत वातावरणों में अनुसंधान और सत्यापन के लिए उस सार्वजनिक PoC लॉजिक को प्रतिबिंबित करता है।
रिपोर्ट किया गया फिक्स algif_aead में कमजोर इन-प्लेस AEAD संचालन को आउट-ऑफ-प्लेस व्यवहार में वापस लाता है।
अवधारणात्मक रूप से:
AF_ALG उपयोग पर नीति प्रतिबंध)।सार्वजनिक लेख पर आधारित:
| दिनांक | घटना |
|---|---|
| 2026-03-23 | लिनक्स कर्नेल सुरक्षा टीम को रिपोर्ट प्रस्तुत की गई |
| 2026-03-24 | प्रारंभिक स्वीकृति |
| 2026-03-25 | पैच चर्चा/समीक्षा |
| 2026-04-01 | फिक्स मेनलाइन में प्रतिबद्ध |
| 2026-04-22 | CVE-2026-31431 निर्दिष्ट |
| 2026-04-29 | सार्वजनिक प्रकटीकरण |
प्रकाशित शोध यूज़रस्पेस सुलभ क्रिप्टो कोड पथों और splice() के तहत स्कैटरलिस्ट/पेज उत्पत्ति पर केंद्रित मानव-निर्देशित, AI-सहायता प्राप्त सबसिस्टम विश्लेषण को श्रेय देता है।
main.go: Go PoC पोर्ट।Makefile: निर्धारणात्मक मल्टी-आर्क लिनक्स बिल्ड लक्ष्य।.github/workflows/build.yml: CI बिल्ड और रिलीज़ आर्टिफैक्ट वर्कफ़्लो।वर्कफ़्लो फ़ाइल: .github/workflows/build.yml
ट्रिगर:
main पर पुशv* से मेल खाता टैग पुशworkflow_dispatchव्यवहार:
make clean checksums के माध्यम से चेकसम के साथ सभी लिनक्स बाइनरी बनाता है।v* से मेल खाते टैग के लिए रिलीज़ एसेट स्वचालित रूप से प्रकाशित करता है।सुझाया गया रिलीज़ प्रवाह:
git tag v1.0.0
git push origin v1.0.0
| वितरण | कर्नेल संस्करण |
|---|---|
| Ubuntu 24.04 LTS | 6.17.0-1007-aws |
| Amazon Linux 2023 | 6.18.8-9.213.amzn2023 |
| RHEL 10.1 | 6.12.0-124.45.1.el10_1 |
| SUSE 16 | 6.12.0-160000.9-default |