
Kali Linux पर फ़ाइललेस LPE CVE‑2026‑31431 ("Copy Fail") को रिप्रोड्यूस किया, फिर इस छिपे हुए कर्नेल एक्सप्लॉइट को पकड़ने के लिए auditd, Sigma और YARA डिटेक्शन बनाए, जो डिस्क पर कोई फुटप्रिंट नहीं छोड़ता।
यह रिपॉज़िटरी CVE-2026-31431 ("Copy Fail") के लिए एंड-टू-एंड पुनरुत्पादन, पहचान इंजीनियरिंग और घटना प्रतिक्रिया का दस्तावेजीकरण करती है, जो Linux कर्नेल की एक गंभीर स्थानीय विशेषाधिकार वृद्धि भेद्यता है और कर्नेल 4.14 से 7.0-rc तक के संस्करणों को प्रभावित करती है।
Copy Fail एक लॉजिक दोष (logic flaw) है, मेमोरी करप्शन नहीं। यह नियतात्मक (deterministic) है, 2017 के बाद से जारी लगभग हर Linux वितरण को प्रभावित करता है, और पूरी तरह फाइललेस है—पारंपरिक फाइल इंटीग्रिटी मॉनिटरिंग (AIDE, Tripwire) इसे देख नहीं सकती। एक कार्यशील proof-of-concept मात्र 732 बाइट्स Python में समा जाता है।
| घटक | विवरण |
|---|---|
| हाइपरवाइज़र | VirtualBox |
| लक्ष्य VM | Kali Linux 2026.1 |
| कर्नेल | 6.18.12+kali-amd64 |
| एक्सप्लॉइट PoC | theori-io/copy-fail-CVE-2026-31431 |
| पहचान | auditd, Sigma, YARA |
प्रयोगशाला यह पुष्टि करके शुरू होती है कि लक्ष्य असुरक्षित कर्नेल चला रहा है।
Kali Linux 2026.1 रिलीज़ और कर्नेल विवरण।
uname -r का आउटपुट जो असुरक्षित कर्नेल 6.18.12+kali-amd64 दिखा रहा है।
एक्सप्लॉइट के लिए algif_aead कर्नेल मॉड्यूल और authencesn क्रिप्टो टेम्पलेट की आवश्यकता होती है।
मॉड्यूल लोड हुआ
lsmod और modinfo पुष्टि करते हैं कि algif_aead उपलब्ध है; /proc/crypto असुरक्षित authencesn टेम्पलेट दिखाता है।
PoC os.splice का उपयोग करता है, जिसके लिए Python 3.10+ आवश्यक है। हम इंटरप्रेटर सत्यापित करते हैं।
Python संस्करण Python 3.12 स्थापित है और उपयोग के लिए तैयार है।
पूर्ण एक्सप्लॉइट चलाने से पहले, एक सुरक्षित जाँचक पुष्टि करता है कि सिस्टम असुरक्षित है।
जाँचक "potentially vulnerable" रिपोर्ट करता है, जो एक्सप्लॉइटेशन का मार्ग प्रशस्त करता है।
बिना विशेष अधिकारों वाले हमलावर का अनुकरण करने के लिए एक विशेषाधिकार-रहित testuser खाता बनाया जाता है।
id UID 1001 दिखाता है, जो गैर‑root पहुँच की पुष्टि करता है।
आधिकारिक Theori PoC को विशेषाधिकार-रहित खाते से क्लोन कर निष्पादित किया जाता है।
एक्सप्लॉइट रिपॉज़िटरी सफलतापूर्वक क्लोन की गई।
एक्सप्लॉइट निष्पादन
Python एक्सप्लॉइट पेज कैश को अधिलेखित करता है और दूषित /usr/bin/su बाइनरी को विस्फोटित करता है।
whoami और id का आउटपुट पूर्ण root विशेषाधिकार वृद्धि को सिद्ध करता है।
एक्सप्लॉइट केवल इन‑मेमोरी पेज कैश को दूषित करता है। ऑन‑डिस्क /usr/bin/su अपने मूल चेकसम को बनाए रखता है।
SHA256 मिलान
एक्सप्लॉइटेशन के बाद भी sha256sum मूल पैकेज हैश से मेल खाता है, जो यह पुष्टि करता है कि कोई डिस्क संशोधन नहीं हुआ।
Copy Fail को फाइल इंटीग्रिटी मॉनिटरिंग द्वारा पहचाना नहीं जा सकता। इसके बजाय, हम इसके द्वारा उपयोग किए जाने वाले syscall‑स्तरीय प्रिमिटिव पर ध्यान केंद्रित करते हैं।
हम कस्टम auditd नियम तैनात करते हैं जो निम्न पर ट्रिगर होते हैं:
AF_ALG सॉकेट निर्माण (family 38)splice() syscall उपयोग
सभी कस्टम नियम सक्रिय हैं, जिन्हें auditctl -l से सत्यापित किया गया।
एक्सप्लॉइट को दूसरी बार चलाने के बाद, हमें उपयोग किए गए सटीक syscalls के लिए अलर्ट दिखाई देते हैं:
ausearch testuser प्रक्रिया से एक AF_ALG सॉकेट निर्माण घटना दिखाता है।
ausearch उसी PID से एक splice() घटना दिखाता है, जो एक मजबूत सहसंबंध है।
एक Sigma नियम auditd निष्कर्षों को विक्रेता‑तटस्थ SIEM प्रारूप में अनुवादित करता है।
Sigma YAML नियम जो AF_ALG सॉकेट निर्माण और splice() कॉल का पता लगाता है।
एक YARA नियम डिस्क पर मौजूद Copy Fail एक्सप्लॉइट कोड की पहचान करने में सहायता करता है।
YARA नियम PoCs में पाए जाने वाले authencesn स्ट्रिंग, सॉकेट कॉन्स्टेंट और splice() संदर्भों से मेल खाता है।
एक पूर्ण घटना प्रतिक्रिया रिपोर्ट reports/incident-copy-fail.md में उपलब्ध है। इसमें शामिल हैं:
तत्काल शमन (कोई रिबूट आवश्यक नहीं):
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo rmmod algif_aead
| परत | यह क्या देखता है | स्थिति |
|---|
| auditd | AF_ALG socket + splice syscalls | ✅ तैनात |
| Sigma | SIEM के माध्यम से syscall पैटर्न | ✅ नियम तैयार |
| YARA | डिस्क पर PoC कोड | ✅ नियम तैयार |
| FIM (AIDE/Tripwire) | फाइल परिवर्तन | ❌ अंधा (Blind) – कोई डिस्क लेखन नहीं होता |