
CVE-2026-31431 (कॉपी फेल) के लिए Ubuntu 24.04 पर स्थायी शमन स्क्रिप्ट, जो कमजोर algif_aead कर्नेल मॉड्यूल को ब्लैकलिस्ट करती है और रिबूट के बाद भी बने रहने के लिए initramfs को अपडेट करती है।
इस रिपॉजिटरी में उबंटू सिस्टम पर गंभीर कमजोरी CVE-2026-31431, जिसे "कॉपी फेल" उपनाम दिया गया है, को बेअसर करने के लिए डिज़ाइन की गई स्क्रिप्ट्स शामिल हैं।
[!IMPORTANT] संगतता: ये स्क्रिप्ट्स उबंटू सर्वर 24.04 LTS के लिए तैयार की गई हैं और उस पर परीक्षण की गई हैं। जबकि अन्य वितरणों के लिए तर्क समान है, इनका डेबियन या अन्य लिनक्स वेरिएंट पर परीक्षण नहीं किया गया है।
पैच लागू करने से पहले, अपने सिस्टम की वर्तमान स्थिति को मान्य करने के लिए आधिकारिक डिटेक्शन स्क्रिप्ट (rootsecdev द्वारा विकसित) डाउनलोड करें:
# डिटेक्शन स्क्रिप्ट डाउनलोड करें
wget https://raw.githubusercontent.com/rootsecdev/cve_2026_31431/main/test_cve_2026_31431.py
# सुनिश्चित करें कि आपके पास python3 स्थापित है
python3 --version
CVE-2026-31431 कमजोरी ($CVSS\ 7.8$) लिनक्स कर्नेल के क्रिप्टोग्राफिक सबसिस्टम (algif_aead मॉड्यूल) को प्रभावित करती है।
एक स्थानीय उपयोगकर्ता splice() फ़ंक्शन के "इन-प्लेस" अनुकूलन में एक दोष का फायदा उठाकर सिस्टम के पेज कैश को दूषित कर सकता है। यह एक हमलावर को कर्नेल को उन फ़ाइलों की मेमोरी पेजों में मनमाना डेटा (अनुक्रम संख्याएँ) लिखने के लिए मजबूर करने की अनुमति देता है जो केवल-पठनीय होनी चाहिए (जैसे SUID बाइनरी या संवेदनशील सिस्टम फ़ाइलें)।
modprobe -r पर्याप्त क्यों नहीं हैलिनक्स कर्नेल ऑटो-लोडिंग नामक एक तंत्र का उपयोग करता है। यदि कोई प्रक्रिया या स्क्रिप्ट (जैसे डिटेक्टर) AF_ALG प्रकार का सॉकेट अनुरोध करती है, तो कर्नेल मॉड्यूल को स्वचालित रूप से पुनः लोड करता है, भले ही इसे मैन्युअल रूप से हटा दिया गया हो। इस पैच में उपयोग की जाने वाली विधि ("हार्ड ब्लॉक") भौतिक रूप से मॉड्यूल बाइनरी को कर्नेल द्वारा लोड होने से रोकती है।
यह पुष्टि करने के लिए टेस्टर चलाएँ कि आपका वर्तमान कर्नेल उजागर है या नहीं:
python3 test_cve_2026_31431.py
यदि स्क्रिप्ट [!] VULNERABLE प्रदर्शित करती है, तो अगले चरण पर आगे बढ़ें।
patch-CVE-2026-31431.sh स्क्रिप्ट हमले के वेक्टर को स्थायी रूप से बेअसर करती है। यह /etc/modprobe.d/ में एक कॉन्फ़िगरेशन फ़ाइल बनाती है और रिबूट के बाद ब्लॉक बनाए रखने के लिए initramfs को अपडेट करती है।
chmod +x patch-CVE-2026-31431.sh
sudo ./patch-CVE-2026-31431.sh
डिटेक्शन स्क्रिप्ट फिर से चलाएँ। अब आपको एक संदेश दिखना चाहिए जो दर्शाता है कि पूर्वापेक्षाएँ पूरी नहीं हुई हैं:
[+] Precondition not met ('authencesn(...) cannot be instantiated)।
यह पुष्टि करता है कि मॉड्यूल सफलतापूर्वक बेअसर हो गया है।
एक बार जब उबंटू कर्नेल अपडेट के माध्यम से आधिकारिक फिक्स जारी करता है (CVE-2026-31431 के लिए apt upgrade नोट्स जाँचें), तो आपको मूल क्रिप्टोग्राफिक क्षमताओं को पुनर्स्थापित करना चाहिए:
chmod +x unpatch-CVE-2026-31431.sh
sudo ./unpatch-CVE-2026-31431.sh
सुरक्षा /etc/modprobe.d/cve-2026-31431-mitigation.conf के भीतर निम्नलिखित निर्देश पर निर्भर करती है:
blacklist algif_aead
install algif_aead /bin/true
install कमांड कर्नेल के मॉड्यूल को लोड करने के प्रयास को /bin/true पर पुनर्निर्देशित करता है, जो बिना किसी कमजोर कोड को निष्पादित किए "सफलता" निकास कोड लौटाता है।