
IPv4 TCP inet_opt/ireq_opt use-after-free के लिए शमन टूलकिट: एक्सपोज़र ऑडिट, nft SYN-with-IP-options ड्रॉप नियम, tcpdump डिटेक्शन, और EL कर्नेल के लिए kpatch/livepatch बिल्डर।
IPv4 TCP inet_opt/ireq_opt use-after-free (अपस्ट्रीम फ़िक्स e3f33b0a,
inet_sock_destruct() + tcp_v4_reqsk_destructor() में kfree → kfree_rcu)।
ट्रिगर: IPv4 विकल्पों (ihl > 5) के साथ आने वाला क्लाइंट SYN — विकल्पों के बिना
रेस वाला ऑब्जेक्ट ireq_opt कभी आवंटित ही नहीं होता। दावा किया गया रिमोट-रूट
एक्सप्लॉइट इसके अतिरिक्त एक MPTCP लिसनर की आवश्यकता रखता है।
| फ़ाइल | रूट आवश्यक | उद्देश्य |
|---|---|---|
cve-audit.sh | नहीं | केवल-पठन एक्सपोज़र + पैचेबिलिटी रिपोर्ट |
cve-mitigate.sh | लागू/पूर्ववत | IP विकल्पों वाले SYN का nft ड्रॉप, वैकल्पिक रूप से MPTCP बंद |
nft-rules.txt | — | रूलसेट स्टैंडअलोन (nft -f nft-rules.txt) |
cve-detect.sh | कैप्चर मोड | एक्सप्लॉइट के पैकेट आकार के लिए tcpdump सेंसर |
kpatch-el-build.sh | बिल्ड/इंस्टॉल | EL परिवार के लिए सत्यापित kpatch/livepatch बिल्डर |
klp-handcraft-build.sh | बिल्ड/लोड | IBT कर्नेल के लिए हस्तलिखित klp मॉड्यूल जहाँ kpatch-build नहीं चल सकता (EL10) |
patches/CVE-2026-98432.patch | — | अपस्ट्रीम फ़िक्स, kpatch-build के लिए तैयार |
tests/run-tests.sh | नहीं | हार्नेस (netns रूलसेट लोड + स्टब्ड बिल्डर e2e) |
./cve-audit.sh # where do I stand?
./cve-mitigate.sh apply --with-mptcp-off # closes trigger + claimed root path
./cve-detect.sh count 30 # anyone probing with IP options?
sudo ./kpatch-el-build.sh --name CVE-2026-98432 \
--expect inet_sock_destruct,tcp_v4_reqsk_destructor \
[--sign priv.pem cert.pem] [--install] \
patches/CVE-2026-98432.patch
# verify: cat /sys/kernel/livepatch/CVE-2026-98432/enabled -> 1
./cve-mitigate.sh status # keep until 100% patched, then:
./cve-mitigate.sh undo
| लक्ष्य | टिप्पणियाँ |
|---|---|
| EL7 (3.10) | भेद्य नहीं (ट्रिगर कोड 4.4 में आया); बिल्डर अन्य पैच के लिए अभी भी काम करता है |
| EL7h/EL8 (4.18) | भेद्य; kernel-debuginfo /usr/src/debug/kernel-*/linux-* प्रदान करता है; EPEL से kpatch-build |
| EL9 (5.14) | भेद्य; कर्नेल gcc-toolset के साथ बनाया गया — बिल्डर स्वतः मिलते-जुलते /opt/rh/gcc-toolset-* को आगे जोड़ता है |
| EL10 (6.12) | IBT: kpatch-build 0.9.11 CONFIG_X86_KERNEL_IBT=y कर्नेल को अस्वीकार करता है (dynup/kpatch#1320) — klp-handcraft-build.sh का उपयोग करें; Secure Boot/lockdown के अंतर्गत मॉड्यूल साइनिंग लागू होती है |
| CloudLinux 8/9/10 | डिस्ट्रो आईडी kpatch-build की समर्थन सूची में नहीं है, इसलिए बिल्डर हमेशा स्पष्ट रूप से -s/-c/-v पास करता है; debuginfo rpm -qf /boot/vmlinuz-$(uname -r) से मेल खाने वाले AlmaLinux/CentOS kernel-debuginfo से आता है |
RHEL पर Debuginfo के लिए रेपो सक्षम होने चाहिए, जैसे
dnf --enablerepo='*debug*' debuginfo-install -y $(rpm -qf /boot/vmlinuz-$(uname -r))
(अनबिल्ड होस्ट पर subscription-manager repos --enable=rhel-9-appstream-rpms आदि)।
CONFIG_LIVEPATCH=y + CONFIG_KALLSYMS=y।.comment-स्तरीय जाँच
kpatch-build को सौंपी गई; toolset लुकअप यहाँ किया जाता है)।--expect) — एक अप्रत्याशित तीसरा परिवर्तन ऑब्जेक्ट एक कठोर विफलता है।sign-file आपके keypair के साथ + modinfo sig_type पुनः-जाँच;
Secure Boot के लिए MOK के माध्यम से प्रमाणपत्र नामांकित करें।--install /var/lib/kpatch/$(uname -r)/ में डालता है, kpatch/insmod के माध्यम से लोड करता है,
रीबूट के बाद बने रहने के लिए kpatch.service सक्षम करता है।uname -r।./kpatch-el-build.sh ... --install; पुष्टि करें
/sys/kernel/livepatch/<name>/enabled == 1।net.ipv4.tcp_migrate_req=1 टॉगल करते हुए
एक लिसनर पर hping3 -S -p <port> --tcp-opts ... फ़्लड;
ip_options_build() के अंदर कृत्रिम udelay() के साथ KASAN कर्नेल संस्करण
पैच के बिना UAF को पुनरुत्पादित करना चाहिए और इसके साथ शांत रहना चाहिए।uname -r को अछूता रहते देखें (livepatch इसे नहीं बढ़ाता), kpatch list,
taint और klp ट्रांज़िशन स्टॉल के लिए dmesg -w देखें
(/sys/kernel/livepatch/<name>/transition को 0 तक खाली होना चाहिए)।हार्नेस: AlmaLinux 10.2 VM (कर्नेल 6.12.0-211.64.1.el10_2) पर सभी जाँचें पास होती हैं।
वास्तविक nft रूलसेट लोड किए जाते हैं और एक नए netns के अंदर सूचीबद्ध किए जाते हैं; pcap फ़िल्टर
लाइव tcpdump के विरुद्ध संकलित किए जाते हैं; बिल्डर पाइपलाइन को एक वास्तविक .ko फ़िक्स्चर
और इंजेक्ट किए गए सिंबल फ़ीड के साथ स्टब किए गए kpatch-build के विरुद्ध एंड-टू-एंड चलाया जाता है।
उस EL10 VM पर लाइव सत्यापित:
klp-handcraft-build.sh --load ने एक लाइवपैच बनाया और सक्षम किया:
/sys/kernel/livepatch/klp_CVE_2026_98432/enabled=1, ट्रांज़िशन ड्रेन हुआ,
sysfs में inet_sock_destruct,1 + tcp_v4_reqsk_destructor,1 सूचीबद्ध हैं; सामान्य
TCP (HTTP 200) अप्रभावित रहा। अहस्ताक्षरित .ko कर्नेल को टेंट करता है; Secure Boot
लॉकडाउन इसे अस्वीकार कर देगा (VM अहस्ताक्षरित चला)।kpatch-build (dynup 0.9.11, स्रोत से निर्मित) EL10 पर
"kernel option CONFIG_X86_KERNEL_IBT not supported" के साथ हार्ड-फेल होता है — बिल्डर
अब इसका प्रीफ्लाइट करता है और हैंडक्राफ्ट मार्ग की ओर इंगित करता है। एक वास्तविक बाइनरी-डिफ
kpatch-build रन EL8/EL9 पर अभी भी अपरीक्षित है।prerouting priority -310 पर नियम उसी कारण से काम करता है।
किसी घटना में भरोसा करने से पहले अपने EL कैनरी पर एक बार हैप्पी पाथ चलाएँ।