
No-reboot mitigation script for the Copy Fail kernel bug (CVE-2026-31431). Disables the vulnerable algif_aead module and evicts page cache for setuid binaries.
कॉपी फेल / CVE-2026-31431 के लिए न्यूनतम नो-रीबूट शमन सहायक।
यह स्क्रिप्ट कमजोर algif_aead मॉड्यूल पथ को अक्षम करती है और मॉड्यूल को तुरंत अनलोड करने का प्रयास करती है। यह /usr/bin/su के लिए पेज-कैश निष्कासन का सर्वोत्तम प्रयास भी करती है।
यह एक शमन है, कर्नेल फिक्स नहीं। जैसे ही आपके विक्रेता का पैच किया हुआ कर्नेल उपलब्ध हो, उसे इंस्टॉल करें।
स्क्रिप्ट सार्वजनिक कॉपी फेल सलाह द्वारा अनुशंसित शमन चलाती है:
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || true
यह algif_aead को modprobe के माध्यम से फिर से लोड होने से रोकती है और यदि संभव हो तो इसे चल रहे कर्नेल से अनलोड कर देती है।
फिर यह एक छोटा Python स्निपेट चलाती है जो /usr/bin/su के पहले पेज के लिए POSIX_FADV_DONTNEED के साथ posix_fadvise() को कॉल करता है:
os.posix_fadvise(fd, 0, page, os.POSIX_FADV_DONTNEED)
यह पेज कैश से संबंधित पेज को निष्कासित करने का सर्वोत्तम प्रयास है। यह पैचिंग का विकल्प नहीं है और हर संभावित लक्षित setuid बाइनरी की सफाई की गारंटी नहीं देता है।
/usr/bin/su क्यों?सार्वजनिक कॉपी फेल प्रूफ-ऑफ-कॉन्सेप्ट डिफ़ॉल्ट रूप से /usr/bin/su को लक्षित करता है। इसलिए यह स्क्रिप्ट कमजोर मॉड्यूल पथ को अक्षम करने के बाद /usr/bin/su के पहले पेज को पेज कैश से हटाने का प्रयास करती है।
यदि आपके वातावरण में किसी अन्य setuid बाइनरी के खिलाफ परीक्षण या संदिग्ध शोषण हुआ है, तो स्क्रिप्ट की समीक्षा करें और उसके अनुसार अनुकूलित करें।
पहले स्क्रिप्ट की समीक्षा करें।
sudo ./mitigate-copy-fail.sh
जाँचें कि मॉड्यूल लोड नहीं है:
lsmod | grep '^algif_aead' || echo "algif_aead is not loaded"
जाँचें कि modprobe नियम मौजूद है:
cat /etc/modprobe.d/disable-algif.conf
अपेक्षित आउटपुट:
install algif_aead /bin/false
मॉड्यूल को मैन्युअल रूप से लोड करने का प्रयास करें:
sudo modprobe algif_aead
इसे विफल होना चाहिए या लोड करने से मना करना चाहिए।
फिक्स किया हुआ कर्नेल इंस्टॉल करने के बाद या जोखिम स्वीकार करने के बाद ही इसे वापस करें।
sudo rm -f /etc/modprobe.d/disable-algif.conf
sudo modprobe algif_aead
यह स्क्रिप्ट निम्नलिखित नहीं करती:
कंटेनर, सैंडबॉक्स, CI रनर और मल्टी-यूज़र होस्ट जैसे अविश्वसनीय वर्कलोड के लिए, seccomp के साथ AF_ALG सॉकेट निर्माण को ब्लॉक करने जैसी अतिरिक्त सख्ती पर विचार करें।