
Ansible भूमिका जो CVE-2026-31431 के लिए modprobe.d शमन को लागू और सत्यापित करती है, algif_aead कर्नेल मॉड्यूल को अक्षम करके, Debian-परिवार प्रणालियों के लिए सुरक्षा जाँच के साथ।
CVE-2026-31431 ("कॉपी फेल") के लिए Linux कर्नेल के AF_ALG / algif_aead सबसिस्टम में modprobe.d मिटिगेशन लागू करने (और बाद में हटाने) के लिए Ansible रोल।
Debian पर परीक्षण किया गया। अन्य डिस्ट्रीब्यूशन, एज केस, या सुधारों के लिए पुल रिक्वेस्ट का स्वागत है।
यह रोल /etc/modprobe.d/ में एक कॉन्फ़िग स्निपेट डालता है जो algif_aead कर्नेल मॉड्यूल को लोड होने से रोकता है:
install algif_aead /bin/false
फिर यह सत्यापित करता है कि मिटिगेशन वास्तव में प्रभावी है:
/boot/config-$(uname -r) पढ़ता है और यदि AEAD कर्नेल में बिल्ट-इन है (CONFIG_CRYPTO_USER_API_AEAD=y) तो चलने से मना कर देता है — modprobe.d बिल्ट-इन कोड को ब्लॉक नहीं कर सकता।algif_aead वर्तमान में lsmod में नहीं है।AF_ALG सॉकेट खोलता है और aead/gcm(aes) पर bind() करने का प्रयास करता है। मिटिगेशन के बाद, bind को FileNotFoundError के साथ विफल होना चाहिए।कोई रीबूट आवश्यक नहीं है।
वापस लाने के लिए (जैसे पैच किया हुआ कर्नेल स्थापित होने के बाद), cve_2026_31431_state=absent सेट करें।
oss-security पर प्रसारित मिटिगेशन — /etc/modprobe.d/ में install algif_aead /bin/false डालना और मॉड्यूल को rmmod करना — CloudLinux, AlmaLinux, RHEL, या किसी भी अन्य RHEL-फैमिली डिस्ट्रीब्यूशन पर काम नहीं करता, और AEAD के साथ कंपाइल किए गए कस्टम कर्नेल पर भी काम नहीं करता।
उन सिस्टमों पर algif_aead कर्नेल में बिल्ट-इन है (CONFIG_CRYPTO_USER_API_AEAD=y), इसलिए:
modprobe.d नियम लोडिंग को ब्लॉक नहीं कर सकते (लोड करने के लिए कुछ भी नहीं है — कोड पहले से ही कर्नेल इमेज में है)।rmmod algif_aead बिल्ट-इन कोड को हटा नहीं सकता।कमांड सफल दिखते हैं लेकिन सिस्टम को अपरिवर्तित छोड़ देते हैं, जिससे सुरक्षा का झूठा एहसास होता है। आप जाँच सकते हैं कि आपका कर्नेल प्रभावित है या नहीं:
zgrep '^CONFIG_CRYPTO_USER_API_AEAD=' /boot/config-$(uname -r)
=m → मॉड्यूल, यह रोल मिटिगेट कर सकता है।=y → बिल्ट-इन, आपको कर्नेल अपडेट + रीबूट या लाइवपैच सब्सक्रिप्शन की आवश्यकता है। यह रोल इसका पता लगाएगा और चलने से मना कर देगा।| नाम | डिफ़ॉल्ट | नोट्स |
|---|---|---|
cve_2026_31431_state | present | मिटिगेशन हटाने के लिए absent सेट करें |
cve_2026_31431_conf | /etc/modprobe.d/disable-algif_aead.conf | ब्लैकलिस्ट फ़ाइल का पथ |
ansible-galaxy install joltcan.cve_2026_31431
ansible-playbook -i <your-inventory> ~/.ansible/roles/joltcan.cve_2026_31431/playbook.yml
पैच किया हुआ कर्नेल चलने के बाद सफाई:
ansible-playbook -i <your-inventory> ~/.ansible/roles/joltcan.cve_2026_31431/playbook.yml -e cve_2026_31431_state=absent
- hosts: all
become: true
roles:
- role: joltcan.cve_2026_31431
इश्यू और पुल रिक्वेस्ट का स्वागत है — विशेष रूप से:
algif_aead लोड करने योग्य है (Arch, Gentoo, Alpine, आदि)।algif_aead को सुरक्षित रूप से अनलोड करने की लॉजिक जब कोई AF_ALG उपयोगकर्ता सक्रिय न हो।MIT — LICENSE देखें।