
प्रति-डिस्ट्रो शमन स्क्रिप्ट्स CVE-2026-31431 ("Copy Fail") Linux कर्नेल LPE के लिए।
CVE-2026-31431 ("Copy Fail") के लिए प्रति-डिस्ट्रो शमन स्क्रिप्ट — एक Linux कर्नेल algif_aead स्थानीय विशेषाधिकार वृद्धि जो 2017 से शिप किए गए अनिवार्य रूप से हर डिस्ट्रो को प्रभावित करती है।
प्रत्येक स्क्रिप्ट या तो आपके डिस्ट्रो के रिपॉजिटरी से एक पैच किया हुआ कर्नेल स्थापित करती है (जब उपलब्ध हो) या, यदि नहीं, तो कमजोर algif_aead कर्नेल मॉड्यूल को ब्लैकलिस्ट करती है ताकि शोषण पथ बंद रहे जब तक आप एक फिक्स कर्नेल पर रीबूट नहीं कर सकते।
अपने डिस्ट्रो के लिए स्क्रिप्ट चुनें, उसका ऑडिट करें, और root के रूप में चलाएँ।
# Ubuntu
sudo bash scripts/ubuntu.sh
# Debian
sudo bash scripts/debian.sh
# RHEL / Rocky / AlmaLinux / CentOS Stream
sudo bash scripts/rhel.sh
# Fedora
sudo bash scripts/fedora.sh
# Arch
sudo bash scripts/arch.sh
# openSUSE Leap / Tumbleweed
sudo bash scripts/opensuse.sh
# Alpine
sudo bash scripts/alpine.sh
# बाकी सब (Gentoo, NixOS, immutable डिस्ट्रो, ...)
sudo bash scripts/universal.sh
यदि आप एक पूर्वावलोकन चाहते हैं जो कुछ भी नहीं बदलता है तो पहले --check का उपयोग करें।
प्रति-डिस्ट्रो स्क्रिप्ट यह एल्गोरिदम चलाती हैं; universal.sh चरण 4–5 छोड़ देती है।
sudo के अंतर्गत फिर से निष्पादित करता है।--force के बिना बेमेल होस्ट पर चलने से इनकार करता है।uname -r पढ़ें।PATCHED_KERNEL_VERSION आपके डिस्ट्रो के लिए दर्ज है और आपका चालू कर्नेल उसके बराबर या उससे ऊपर है, तो स्क्रिप्ट कोई भी बचा हुआ शमन फ़ाइल हटा देती है और बाहर निकल जाती है।--yes छोड़ने के लिए)। स्थापना के बाद, आप मैन्युअल रूप से रीबूट करते हैं।blacklist algif_aead और install algif_aead /bin/true के साथ /etc/modprobe.d/cve-2026-31431.conf लिखता है, फिर एक AF_ALG सॉकेट-बाइंड प्रोब के माध्यम से सत्यापित करता है कि शोषण पथ बंद है।PATCHED_KERNEL_VERSION = PENDING का अर्थ है कि रखरखावकर्ताओं ने अभी तक उस डिस्ट्रो के लिए एक फिक्स कर्नेल संस्करण दर्ज नहीं किया है। प्रत्येक पंक्ति एक-पंक्ति PR के माध्यम से अपडेट होती है।
| डिस्ट्रो | कर्नेल पैकेज | पैच किया गया संस्करण | अंतिम जाँच |
|---|---|---|---|
| Ubuntu (24.04) | linux-image-generic | PENDING | 2026-05-01 |
| Debian | linux-image-amd64 | PENDING | 2026-05-01 |
| RHEL / Rocky / Alma | kernel | PENDING | 2026-05-01 |
| Fedora | kernel | PENDING | 2026-05-01 |
| Arch | linux | PENDING | 2026-05-01 |
| openSUSE | kernel-default | PENDING | 2026-05-01 |
| Alpine | linux-lts | PENDING | 2026-05-01 |
| फ्लैग | अर्थ |
|---|---|
-y, --yes | गैर-संवादात्मक; कर्नेल-स्थापना संकेत छोड़ें। |
--force | डिस्ट्रो-बेमेल जाँच को बायपास करें। |
--check | केवल-पठनीय पूर्वावलोकन; प्रिंट करें कि क्या होगा, कुछ भी न बदलें। |
--undo | /etc/modprobe.d/cve-2026-31431.conf हटाएँ। पैच किया हुआ कर्नेल स्थापित होने के बाद उपयोग करें। |
-h, --help | उपयोग जानकारी। |
स्क्रिप्ट इस प्रोब को स्वचालित रूप से चलाती हैं। स्वयं जाँचने के लिए:
python3 - <<'PY'
import socket, errno
try:
s = socket.socket(socket.AF_ALG, socket.SOCK_SEQPACKET, 0)
s.bind(("aead", "authencesn(hmac(sha1),cbc(aes))"))
print("BAD: bind succeeded — host is NOT mitigated")
s.close()
except OSError as e:
print(f"OK: bind blocked, errno={e.errno} ({e.strerror})" if e.errno == errno.ENOENT
else f"INCONCLUSIVE: errno={e.errno}")
PY
एक शमित या पैच किया हुआ होस्ट OK: bind blocked, errno=2 ... प्रिंट करता है।
आपके डिस्ट्रो द्वारा एक फिक्स कर्नेल प्रकाशित करने और उस पर रीबूट करने के बाद, modprobe ब्लैकलिस्ट हटाएँ ताकि एप्लिकेशन जो वैध रूप से AF_ALG aead का उपयोग करते हैं, फिर से काम कर सकें:
sudo bash scripts/<your-distro>.sh --undo
जब आपका डिस्ट्रो एक फिक्स कर्नेल प्रकाशित करता है:
scripts/<distro>.sh में एक पंक्ति संपादित करें — PATCHED_KERNEL_VERSION को फिक्स पैकेज संस्करण पर सेट करें (उस प्रारूप में जो dpkg-query -W / rpm -q VERSION-RELEASE / pacman -Q लौटाता है)।<distro>: fix shipped in <version> शीर्षक वाला एक PR खोलें।सुरक्षा शमन उपकरण। sudo bash में पाइप करने से पहले इंटरनेट पर मिलने वाली किसी भी स्क्रिप्ट का ऑडिट करें। रखरखावकर्ता MIT लाइसेंस के तहत कोई दायित्व स्वीकार नहीं करते हैं।
MIT।