
विश्लेषण - POC - शमन
केवल शैक्षिक उद्देश्यों के लिए। स्पष्ट प्राधिकरण के बिना सिस्टम पर उपयोग न करें।
| फ़ील्ड | मान |
|---|---|
| CVE | CVE-2026-31431 |
| उपनाम | Copy Fail |
| CVSS | 7.8 (उच्च) |
| प्रकार | स्थानीय विशेषाधिकार वृद्धि (LPE) |
| प्रभावित कर्नेल | 2017 – 2026 (कमिट 72548b093ee3 और आगे) |
| अपस्ट्रीम फिक्स | कमिट a664bf3d603d (2017 के परिवर्तन को पूर्ववत करना) |
| प्रकटीकरण | 29 अप्रैल 2026 (Theori / Xint Code) |
Copy Fail Linux कर्नेल के क्रिप्टोग्राफ़िक उपतंत्र में एक निर्धारणात्मक (दौड़ की स्थितियों की आवश्यकता नहीं) तार्किक बग है। यह एक अविशेषाधिकार प्राप्त उपयोगकर्ता को सिस्टम पर किसी भी पठनीय फ़ाइल के पेज कैश में 4 नियंत्रित बाइट्स लिखने की अनुमति देता है, जिसमें su या sudo जैसे setuid बाइनरी शामिल हैं।
पिछली समान भेद्यताओं के विपरीत:
Linux कर्नेल — crypto/authencesn.c
└── algif_aead (AF_ALG मॉड्यूल)
└── इन-प्लेस ऑप्टिमाइज़ेशन (कमिट 72548b093ee3, 2017)
└── AEAD scratch write → scatterlist की सीमा पार करता है
└── बाहरी फ़ाइल के पेज कैश में 4 बाइट्स लिखता है
प्रभावित वितरण: Ubuntu, Debian, RHEL, Amazon Linux, SUSE, Fedora, Arch, AlmaLinux — कोई भी डिस्ट्रो जिसमें कर्नेल ≥ 2017 है।
2017 में एक ऑप्टिमाइज़ेशन पेश किया गया जो req->src और req->dst को एक ही संयुक्त scatterlist पर इंगित करता है। इसके कारण पेज कैश के पृष्ठ (जो splice() से आते हैं) सीधे लिखने योग्य गंतव्य scatterlist से जुड़ जाते हैं।
1. authencesn एल्गोरिथम के साथ AF_ALG सॉकेट खोलें
2. लक्ष्य बाइनरी के पेज कैश पृष्ठों को AF_ALG सॉकेट में फीड करने के लिए splice() का उपयोग करें
(उदाहरण: /usr/bin/sudo)
3. AEAD डिक्रिप्ट ऑपरेशन निष्पादित करें
4. authencesn गंतव्य बफ़र को स्क्रैच पैड के रूप में उपयोग करता है →
वैध आउटपुट से बाहर seqno_hi (4 नियंत्रित बाइट्स) लिखता है,
scatterlist की सीमा पार करता है
5. 4 बाइट्स लक्ष्य बाइनरी के पेज कैश पृष्ठ पर पहुँच जाती हैं
6. डिस्क पर फ़ाइल नहीं बदलती → एकीकरण जाँच कुछ भी पता नहीं लगाती
7. मेमोरी में संशोधित बाइनरी पेलोड निष्पादित करती है → रूट
लेखन सामान्य VFS लेखन पथ को दरकिनार करता है। डिस्क पर फ़ाइल बरकरार रहती है। sha256sum, aide, tripwire, या inotify जैसे उपकरण परिवर्तन का पता नहीं लगाते क्योंकि वे डिस्क पर फ़ाइल या inode पर काम करते हैं, मेमोरी में पेज कैश पर नहीं।
लैब पेज कैश भ्रष्टाचार प्रदर्शित करने के लिए एक भेद्य कर्नेल का उपयोग करता है। Docker वातावरण में, पूर्ण विशेषाधिकार वृद्धि होस्ट कॉन्फ़िगरेशन (साझा कर्नेल) पर निर्भर करती है।
# रिपॉजिटरी क्लोन करें
cd cve-2026-31431
# भेद्य इमेज बनाएँ
docker build -t copyfail-lab -f docker/Dockerfile.vulnerable .
# लैब चलाएँ
docker run --rm -it \
--cap-add=NET_ADMIN \
--security-opt seccomp=unconfined \
copyfail-lab bash
# कंटेनर के अंदर:
cd /lab
python3 exploit/poc.py
os.splice के लिए)exploit/poc.py और exploit/README.md देखें।
PoC प्रदर्शित करता है:
विस्तृत निर्देशों के लिए mitigation/README.md देखें।
TL;DR — तत्काल शमन (रीबूट के बिना):
# प्रभावित मॉड्यूल को अक्षम करें
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo modprobe -r algif_aead 2>/dev/null || true
स्थायी समाधान: कर्नेल को पैच किए गए संस्करण में अपडेट करें (a664bf3d603d के बाद)।
cve-2026-31431/
├── README.md ← यह फ़ाइल
├── docs/
│ ├── technical-analysis.md ← गहन तकनीकी विश्लेषण
│ └── affected-kernels.md ← प्रभावित/पैच किए गए संस्करणों की तालिका
├── exploit/
│ ├── README.md ← PoC दस्तावेज़ीकरण
│ └── poc.py ← प्रूफ ऑफ कॉन्सेप्ट (Python 3.10+)
├── mitigation/
│ ├── README.md ← शमन मार्गदर्शिका
│ ├── disable-algif.conf ← modprobe कॉन्फ़िग
│ └── check-vulnerable.sh ← पता लगाने की स्क्रिप्ट
├── docker/
│ ├── Dockerfile.vulnerable ← भेद्य लैब
│ └── Dockerfile.patched ← शमन लागू के साथ लैब
└── scripts/
└── setup-lab.sh ← लैब ऑटोमेशन
| भेद्यता | प्रकार | दौड़ की आवश्यकता? | पोर्टेबल? | शोषण का आकार |
|---|
| Dirty Cow (CVE-2016-5195) | CoW दौड़ | हाँ | आंशिक | ~KB |
| Dirty Pipe (CVE-2022-0847) | पाइप बफ़र | नहीं | सीमित | ~KB |
| Copy Fail (CVE-2026-31431) | तार्किक | नहीं | पूर्ण | 732 बाइट्स |
| तिथि | घटना |
|---|
| 2017 | कमिट 72548b093ee3 कर्नेल में बग पेश करता है |
| ~2025 | Theori/Xint Code क्रिप्टो उपतंत्र का विश्लेषण शुरू करता है |
| 28 अप्रैल, 2026 | वितरकों के साथ समन्वय |
| 29 अप्रैल, 2026 | सार्वजनिक प्रकटीकरण + PoC प्रकाशित |
| 1 मई, 2026 | पैच किए गए कर्नेल उत्पादन रिपॉजिटरी में उपलब्ध |
| 1 मई, 2026 | CISA KEV कैटलॉग में जोड़ा गया |