
Ubuntu कर्नेल पैच स्थिति का CVE-2026-98432 के लिए आकलन करने और IP विकल्प ले जाने वाले IPv4 TCP पैकेट को ड्रॉप करने वाला एक स्थायी nftables या iptables अस्थायी उपाय लागू करने वाला शेल स्क्रिप्ट।
# 1. Inspect the host; no changes.
sudo ./cve-2026-98432-mitigate.sh check
# 2. Get a patch-state verdict for the exact running kernel package.
sudo ./cve-2026-98432-mitigate.sh assess
# 3. Apply the stopgap filter and make it survive reboot.
sudo ./cve-2026-98432-mitigate.sh enable
# 4. Prove that normal TCP still works and IP-option TCP is dropped.
sudo ./cve-2026-98432-mitigate.sh verify
# 5. Monitor. Exit 0 = healthy, 1 = mismatch/persistence failure, 2 = no state.
sudo ./cve-2026-98432-mitigate.sh status
# 6. After booting a kernel that Ubuntu marks as fixed.
sudo ./cve-2026-98432-mitigate.sh disable
enable CIPSO/NetLabel का पता चलने पर ruleset बदलने से इनकार कर देता है, क्योंकि यह नियम IP options ले जाने वाले सभी TCP को गिरा देता है, जिसमें labelled traffic भी शामिल है। --ignore-cipso का उपयोग केवल तभी करें जब आप उस trade-off को स्वीकार करते हों। systemd रहित कंटेनर या होस्ट को --no-persist का उपयोग करना चाहिए; अन्यथा enable तब exit 4 के साथ बाहर निकलता है जब reboot persistence स्थापित नहीं की जा सकती, जबकि सक्रिय नियम यथावत रहता है।
CVE-2026-98432 Linux IPv4 TCP handshake में एक use-after-free है। यह तब पहुँच योग्य होता है जब आने वाला SYN IP options ले जाता है। वास्तविक समाधान patched kernel है; यह स्क्रिप्ट एक अस्थायी उपाय है जो उन inbound IPv4 TCP packets को गिरा देती है जिनकी IP header length 5 से अधिक है (IHL 6-15), अर्थात् IP options ले जाने वाले packets को, conntrack और Docker NAT से पहले।
यह दो समतुल्य backends का समर्थन करता है:
table ip cve_2026_98432, prerouting priority -310, केवल TCP, counter, drop।raw PREROUTING, u32 match 0>>24&0xf=6:15, केवल TCP, counter, drop।nft रूप ip family और एक numeric priority का उपयोग करता है ताकि यह Ubuntu 16.04 के nft 0.5 के साथ-साथ वर्तमान nft 1.x पर भी काम करे। iptables रूप iptables 1.6 और बाद के संस्करणों के साथ काम करता है। जब तक --install-nft पास न किया जाए, कोई पैकेज स्थापित नहीं होता।
स्क्रिप्ट पूर्ण अपेक्षित नियम को मान्य करती है, टुकड़ों को नहीं। nft के लिए यह आवश्यक करती है कि pre chain में prerouting hook ठीक priority -310 पर हो (या legacy raw - 10 रूप में) और अपेक्षित DROP पहला नियम हो। iptables के लिए यह आवश्यक करती है कि iptables -C सफल हो और normalization के बाद पूर्ण पहला raw PREROUTING नियम मेल खाए। enable पुनः लागू करने से इनकार करने के बजाय विस्थापित नियम की मरम्मत करता है।
Akamai की स्क्रिप्ट ने नीचे दिए गए assessment और safety विचारों का योगदान दिया। इसका enforcement रूप अपनाया नहीं गया क्योंकि हमारा अधिक कठोर और 16.04-संगत है। सबसे महत्वपूर्ण शामिल निष्कर्ष, प्राथमिकता क्रम में:
assess चल रहे kernel के सटीक image पैकेज को हल करता है (linux-image-$KVER, फिर linux-image-unsigned-$KVER, फिर /boot/vmlinuz-$KVER का स्वामी)। linux-image-generic जैसे metapackages केवल संदर्भ के रूप में दिखाए जाते हैं, कभी भी निर्णय के साक्ष्य के रूप में उपयोग नहीं किए जाते। changelog में मिलना प्रबल परंतु भ्रांतिपूर्ण साक्ष्य है; changelog अनुपस्थित होना और साथ में fixed release के बराबर या उससे ऊपर का स्वतंत्र रूप से निर्णायक स्वच्छ upstream संस्करण होना फिर भी PATCHED देता है; साक्ष्य के बिना vendor kernel UNKNOWN देता है।enable को exit 4 के साथ बाहर निकालता है जबकि नियम सक्रिय रहता है। status persistence का मूल्यांकन oneshot की runtime स्थिति से स्वतंत्र रूप से करता है और enabled-runtime को गैर-स्थायी के रूप में अस्वीकार करता है।detected डिफ़ॉल्ट रूप से इनकार करता है, unknown चेतावनी देता है, not_detected आगे बढ़ता है। netlabelctl का अनुपस्थित होना यह सिद्ध नहीं करता कि CIPSO अनुपस्थित है।check verified-usable, present-unverified, unusable और unknown में अंतर करता है; --backend nft nft का मूल्यांकन तब भी करता है जब iptables काम करता हो।XDP_PASS फिर भी kernel stack में प्रवेश करता है।-x) आउटपुट का उपयोग करते हैं, और पिछले संस्करण से आने वाला legacy filter/INPUT नियम raw प्रतिस्थापन लोड होने के बाद रिपोर्ट और हटाया जाता है।नियम मिलान और स्टेट-फ़ाइल प्रारूप पश्चगामी-संगत हैं। आपको पहले disable करने की आवश्यकता नहीं है; इस संस्करण के साथ enable को फिर से चलाने से नियम यथास्थान मरम्मत हो जाता है, अद्यतन बूट यूनिट स्थापित हो जाती है, और नया persistence फ़ील्ड दर्ज हो जाता है। यदि किसी पुरानी स्टेट फ़ाइल में persist= पंक्ति नहीं है, तो status अनुपस्थित फ़ील्ड पर विफल होने के बजाय यूनिट स्थिति से persistence का अनुमान लगाता है।
जानने योग्य परिचालनगत परिवर्तन:
enable अब तब एग्ज़िट कोड 4 देता है जब नियम सक्रिय है लेकिन रीबूट persistence विफल रहा। पहले ऐसी स्थिति में यह 0 दे सकता था।check अब केवल सत्यापित उपयोगी बैकएंड के लिए 0 लौटाता है, कोई उपयोगी बैकएंड न होने पर 1, मौजूद-लेकिन-असत्यापित के लिए 4, और उपयोग त्रुटि के लिए 2।assess नया है और नीचे दस्तावेज़ित अनुसार 0/1/3/4 लौटाता है।enable से इनकार कर देता है जब तक --ignore-cipso पास न किया जाए।enable फिर से चलाएँ ताकि नई यूनिट ऑर्डरिंग और ExecStart लागू हो जाएँ।तैयार: 2026-10-30 (अद्यतन 2026-10-31)
Ubuntu ट्रैकर जाँचा गया: 2026-10-31 11:59 UTC (पृष्ठ अंतिम बार 2026-10-30 को अद्यतन)। अभी तक कोई निश्चित कर्नेल जारी नहीं हुआ है।
दायरा: Linux सर्वर, मुख्य रूप से Ubuntu 16.04 (xenial), 22.04 (jammy), 24.04 (noble) और 26.04 (resolute), जिनमें Docker/BTCPay होस्ट शामिल हैं।
डिलीवरेबल: इस निर्देशिका में cve-2026-98432-mitigate.sh।
परीक्षण किया गया: Ubuntu 16.04, 22.04, 24.04 और 26.04 पर।