
CVE-2026-31431 भेद्यता को RHEL-आधारित और Debian-आधारित OS पर कम करने के लिए एक Ansible Playbook।
Debian/Ubuntu और RHEL/Rocky/AlmaLinux सिस्टम दोनों पर CVE-2026-31431 (AF_ALG) कर्नेल मॉड्यूल शमन को लागू करने और वापस रोलबैक करने के लिए एक Ansible प्लेबुक।
यह प्लेबुक कमजोर algif_aead कर्नेल मॉड्यूल को अक्षम करके CVE-2026-31431 को शमित करती है:
grubby का उपयोग करता है⚠️ महत्वपूर्ण: प्लेबुक आपके सर्वर को स्वचालित रूप से रीबूट नहीं करती। यह रीबूट आवश्यक होने पर एक अनुस्मारक संदेश प्रदर्शित करती है, जिससे ऑपरेटर रखरखाव विंडो के दौरान रीबूट शेड्यूल कर सकते हैं।
examples/ निर्देशिका में नमूना कॉन्फ़िगरेशन फ़ाइलें प्रदान की गई हैं:
# नमूना इन्वेंट्री कॉपी करें
cp examples/inventory/hosts.ini inventory/hosts.ini
# नमूना ansible कॉन्फ़िगरेशन कॉपी करें (वैकल्पिक)
cp examples/ansible.cfg ansible.cfg
विस्तृत अनुकूलन निर्देशों के लिए examples/README.md देखें।
अपने सर्वर विवरण के साथ inventory/hosts.ini संपादित करें:
[servers]
server1.example.com
server2.example.com ansible_host=192.168.1.50
[servers:vars]
ansible_user=admin
ansible_become=true
ansible all -m ping
ansible-playbook mitigation-playbook.yaml
अपनी इन्वेंट्री के सभी होस्ट पर शमन लागू करने के लिए:
ansible-playbook mitigation-playbook.yaml
विशिष्ट होस्ट या समूहों पर लागू करने के लिए:
ansible-playbook mitigation-playbook.yaml --limit webservers
शमन को रोलबैक (हटाने) के लिए:
ansible-playbook mitigation-playbook.yaml -e "rollback=true"
या rollback टैग का उपयोग करें:
ansible-playbook mitigation-playbook.yaml --tags rollback -e "rollback=true"
पुराने systemd ड्रॉप-इन फ़ाइलों को हटाने के लिए (यदि इस शमन के पुराने संस्करण से माइग्रेट कर रहे हैं):
ansible-playbook mitigation-playbook.yaml -e "run_systemd_cleanup=true"
TASK [CVE-2026-31431 Summary (Debian)] ****************************************
ok: [server1] => {
"msg": [
"===== CVE-2026-31431 SUMMARY — server1 =====",
"Action: apply",
"Module loaded (pre): False",
"Module loaded (post): False",
"Reboot required: False"
]
}
TASK [Remind operator to reboot (RHEL)] ****************************************
ok: [server2] => {
"msg": "REMINDER: Kernel args changed. Reboot required to activate mitigation."
}
TASK [CVE-2026-31431 Summary (Red Hat)] ****************************************
ok: [server2] => {
"msg": [
"===== CVE-2026-31431 SUMMARY — server2 =====",
"Action: apply",
"Kernel arg active (pre): False",
"Kernel arg active (post): False",
"Reboot required: True"
]
}
TASK [Remind to reboot if required (Red Hat)] **********************************
ok: [server2] => {
"msg": "REMINDER: A reboot is required to activate/deactivate the mitigation on this Red Hat-based host."
}
| OS परिवार | रीबूट कब आवश्यक है | व्यवहार |
|---|---|---|
| Debian/Ubuntu | मॉड्यूल "उपयोग में" था और अनलोड नहीं हो सका | केवल अनुस्मारक |
| RHEL/Rocky/Alma | Grubby ने कर्नेल तर्कों में परिवर्तन किए | केवल अनुस्मारक |
प्लेबुक को कभी भी स्वचालित रूप से रीबूट न करने के लिए डिज़ाइन किया गया है ताकि ऑपरेटरों को रखरखाव विंडो पर पूर्ण नियंत्रण मिल सके।
| चर | डिफ़ॉल्ट | विवरण |
|---|---|---|
rollback | false | शमन को रोलबैक करने के लिए true पर सेट करें |
run_systemd_cleanup | false | पुराने systemd ड्रॉप-इन हटाने के लिए true पर सेट करें |
target_hosts | all | निष्पादन को विशिष्ट होस्ट या समूहों तक सीमित करें |
mitigation_serial | 25% | रोलिंग निष्पादन के लिए बैच आकार |
mitigation - केवल शमन लागू करने के कार्य चलाएँrollback - केवल रोलबैक कार्य चलाएँsystemd-cleanup - केवल systemd सफाई कार्य चलाएँउदाहरण:
# केवल शमन कार्य चलाएँ
ansible-playbook -i inventory/hosts.ini mitigation-playbook.yaml --tags mitigation
# केवल रोलबैक कार्य चलाएँ
ansible-playbook -i inventory/hosts.ini mitigation-playbook.yaml --tags rollback -e "rollback=true"
प्लेबुक चलाने के बाद (और संकेत मिलने पर रीबूट करने के बाद), सत्यापित करें कि शमन सक्रिय है:
# जाँचें कि मॉड्यूल ब्लैकलिस्टेड है या नहीं
cat /etc/modprobe.d/disable-algif.conf
# जाँचें कि मॉड्यूल लोड है या नहीं (कुछ भी वापस नहीं आना चाहिए)
lsmod | grep algif_aead
# जाँचें कि कर्नेल तर्क मौजूद है या नहीं
grep initcall_blacklist /proc/cmdline
# कुछ इस तरह आउटपुट होना चाहिए:
# ... initcall_blacklist=algif_aead_init ...
MIT लाइसेंस - विवरण के लिए LICENSE फ़ाइल देखें
योगदान का स्वागत है! कृपया मुद्दे और पुल अनुरोध सबमिट करें।
यह प्लेबुक निम्नलिखित स्रोतों से प्रेरणा लेकर बनाई गई थी:
यह प्लेबुक यथावत प्रदान की गई है। प्रोडक्शन सिस्टम पर लागू करने से पहले हमेशा अपने वातावरण में अच्छी तरह से परीक्षण करें। इस प्लेबुक के उपयोग से होने वाली किसी भी सिस्टम क्षति या डाउनटाइम के लिए लेखक जिम्मेदार नहीं हैं।