
CVE-2026-74727 के लिए अपस्ट्रीम OpenVPN कर्नेल फ़िक्स, Ubuntu कर्नेल 7.0.0-38.38 पर परीक्षण किया गया। इसमें बिल्ड निर्देश और कार्यात्मक परीक्षण परिणाम शामिल हैं।
x86_64 पर Ubuntu कर्नेल स्रोत पैकेज linux 7.0.0-38.38 के विरुद्ध CVE-2026-74727 से संबद्ध अपस्ट्रीम फ़िक्स के स्थानीय बिल्ड, कार्यात्मक परीक्षणों, केंद्रित स्रोत समीक्षा और नियतात्मक VPN-IP तथा ट्रांसपोर्ट-एंडपॉइंट रीहैश इनवेरिएंट रिग्रेशन परीक्षणों का दस्तावेज़ीकरण। ट्रांसपोर्ट-एंडपॉइंट परीक्षणों को स्थानीय रूप से बिल्ड किए गए Generic KASAN कर्नेल पर भी पुनः बिल्ड करके चलाया गया।
यह किसी मौजूदा अपस्ट्रीम फ़िक्स की बैकपोर्ट समीक्षा है, न कि कोई नई खोजी गई भेद्यता या मौलिक सुरक्षा फ़िक्स। दर्ज अपस्ट्रीम लेखक Antonio Quartulli हैं। दर्ज कमिट 33ec10567fe14456063daf549fdf1a4f53448e4c है।
अपस्ट्रीम पैच: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/patch/?id=33ec10567fe14456063daf549fdf1a4f53448e4c
drivers/net/ovpn/peer.c में यह परिवर्तन ऐसे पीयर को रीहैश करने से रोकता है जिसे पहले ही पीयर ID हैश तालिका से हटा दिया गया है। इसे वितरित करते समय मूल पैच हेडर, लेखकत्व और लाइसेंसिंग को सुरक्षित रखें। यह दस्तावेज़ कर्नेल पैच को पुनः लाइसेंस नहीं देता।
मूल अपस्ट्रीम पैच बाइट-दर-बाइट शामिल है। इसका SHA-256 दर्ज परीक्षण सत्र में उपयोग किए गए आर्टिफ़ैक्ट से मेल खाता है। इसके लेखक, कमिट संदेश और कोड परिवर्तनों को GitHub पर सार्वजनिक अपस्ट्रीम कमिट के विरुद्ध जाँचा गया। कोई बाइनरी शामिल नहीं है।
पैच चेकसम को शामिल फ़ाइल के विरुद्ध स्वतंत्र रूप से जाँचा गया। मॉड्यूल चेकसम ऑपरेटर के परीक्षण सत्र के दौरान दर्ज किया गया; बाइनरी यहाँ वितरित नहीं की गई है।
| आर्टिफ़ैक्ट | SHA-256 |
|---|---|
CVE-2026-74727-upstream.patch | baf0962c60b182776a86e040d2ec5b35eea2737c2e2eb6f17f87eb7d2fe47b24 |
परीक्षित ovpn.ko | 0853fdce14ce1c4d64857871dc873bf98a1b8fe8243bf042ad6daffc906e6d27 |
सटीक Ubuntu स्रोत पैकेज linux 7.0.0-38.38 की एक अलग निकाली गई प्रति का उपयोग करें। पहले मेल खाते कर्नेल हेडर और बिल्ड टूलचेन इंस्टॉल करें। दर्ज कंपाइलर Ubuntu GCC 15.2.0-16ubuntu1 था, जो चल रहे कर्नेल के कंपाइलर से मेल खाता है।
स्रोत रूट से, पैच को उसकी पैरेंट डायरेक्टरी में रखते हुए:
patch --dry-run --batch --forward --fuzz=0 -p1 < ../CVE-2026-74727-upstream.patch
patch --batch --forward --fuzz=0 -p1 < ../CVE-2026-74727-upstream.patch
make -C /lib/modules/7.0.0-38-generic/build \
M="$PWD/drivers/net/ovpn" CONFIG_OVPN=m \
CC=x86_64-linux-gnu-gcc -j1 modules
दर्ज किए गए पैच अनुप्रयोग ने -6 और -5 के लाइन ऑफ़सेट के साथ शून्य फ़ज़ का उपयोग किया। बिल्ड ने एग्ज़िट कोड 0 लौटाया। BTF जनरेशन छोड़ दिया गया क्योंकि vmlinux उपलब्ध नहीं था। मॉड्यूल vermagic 7.0.0-38-generic SMP preempt mod_unload modversions से मेल खाता था।
मेल खाता vermagic और सफल बिल्ड यह स्थापित नहीं करते कि कोई मॉड्यूल सुरक्षित है या कि भेद्यता का पूरी तरह से सत्यापन हो गया है।
परीक्षण कर्नेल 7.0.0-38-generic और Secure Boot अक्षम के साथ एक Hyper-V Ubuntu VM पर मैन्युअल रूप से किए गए थे। परिणाम ऑपरेटर-प्रदत्त टर्मिनल आउटपुट पर आधारित हैं:
192.0.2.2 से 192.0.2.3 में बदल दिया; लौटाए गए पीयर स्टेट ने परिवर्तन की पुष्टि की। यह एक अस्थायी परीक्षण नेमस्पेस तक सीमित था और इसने परिचालन VPN पता नहीं बदला।2026-10-06 को, दो स्टैंडअलोन परीक्षण मॉड्यूल ने अनपैच्ड बैकअप और पैच्ड स्रोत से निकाले गए वास्तविक ovpn_peer_hash_vpn_ip() फ़ंक्शन को निष्पादित किया। निजी सिंथेटिक ऑब्जेक्ट्स को पूरे समय आवंटित रखा गया। हैश तालिकाओं से पूर्ण निष्कासन का अनुकरण करने के बाद, परीक्षण ने ovpn->lock के अंतर्गत फ़ंक्शन को फिर से कॉल किया।
| प्रॉपर्टी | पैच से पहले | पैच के बाद |
|---|---|---|
| सक्रिय पीयर IPv4 और IPv6 तालिकाओं में दर्ज है | PASS | PASS |
| हटाया गया पीयर IPv4 और IPv6 तालिकाओं से बाहर रहता है | FAIL | PASS |
| हटाए गए पीयर के रीहैश के बाद भरे हुए IPv4 / IPv6 बकेट | 1 / 1 | 0 / 0 |
यह विशिष्ट निष्कासन-पश्चात अपरिवर्तनीय (invariant) की रनटाइम जाँच है, न कि किसी समवर्ती विलोपन रेस या use-after-free का पुनरुत्पादन। बेसलाइन की invariant विफलता अपेक्षित है और यह प्रदर्शित करती है कि परीक्षण दोनों फ़ंक्शन संस्करणों में भेद करता है। दोनों मॉड्यूल बाद में अनलोड किए गए। परिचालन VPN अपने पते में बिना परिवर्तन के सक्रिय रहा। समीक्षित लॉग अंतराल में परीक्षण परिणाम थे और कोई मेल खाता BUG, Oops, general protection fault या soft lockup संदेश नहीं था।
दर्ज किए गए आउटपुट, पुनरुत्पादन निर्देशों और सीमाओं के लिए TESTING.md देखें। जनरेटर tests/prepare-ovpn-rehash-regtest.py में है।
2026-10-06 को, स्टैंडअलोन परीक्षण मॉड्यूल ने उत्पादन बाइंडिंग हेल्पर्स के साथ, अनपैच्ड और पैच्ड स्रोतों से निकाले गए वास्तविक ovpn_peer_endpoints_update() फ़ंक्शन को भी निष्पादित किया। IPv4 और IPv6 दोनों के लिए, निजी सिंथेटिक पैकेट हेडर ने एक सक्रिय पीयर को फ़्लोट कराया, फिर उसकी हैश प्रविष्टियाँ हटाए जाने के बाद एक और एंडपॉइंट अपडेट कराया, जबकि उसका स्टोरेज आवंटित रहा।
| प्रॉपर्टी, IPv4 और IPv6 दोनों के लिए | पैच से पहले | पैच के बाद |
|---|---|---|
| सक्रिय पीयर फ़्लोट करता है और ट्रांसपोर्ट तालिका में रहता है | PASS | PASS |
| मॉडल किए गए निष्कासन के बाद एंडपॉइंट अपडेट तक पहुँचा जाता है | PASS | PASS |
| हटाया गया पीयर ट्रांसपोर्ट तालिका से बाहर रहता है | FAIL | PASS |
| हटाए गए पीयर के अपडेट के बाद भरे हुए ट्रांसपोर्ट बकेट | 1 | 0 |
कोई पैकेट प्रसारित नहीं किए गए, और कोई वास्तविक इंटरफ़ेस, VPN पीयर या पते संशोधित नहीं किए गए। दोनों परीक्षण मॉड्यूल बाद में अनलोड किए गए; परिचालन VPN अपने पते में बिना परिवर्तन के सक्रिय रहा। समीक्षित लॉग अंतराल में चारों परीक्षण परिणाम थे और कोई मेल खाता BUG, Oops, general protection fault या soft lockup पंक्ति नहीं थी।
दायरे, पुनरुत्पादन निर्देशों और दर्ज किए गए परिणामों के लिए FLOAT-TESTING.md और tests/prepare-ovpn-float-regtest.py देखें।
2026-10-06 को, समीक्षित Ubuntu स्रोत को CONFIG_KASAN=y, CONFIG_KASAN_GENERIC=y, CONFIG_KASAN_OUTLINE=y और CONFIG_STACKTRACE=y के साथ एक पूर्ण कर्नेल के रूप में बनाया गया था। इसका रिलीज़ स्ट्रिंग 7.0.14-ovpn-kasan था। कर्नेल और मॉड्यूल बिल्ड ने एग्ज़िट कोड 0 लौटाया। VM ने इस कर्नेल को बूट किया और इसकी प्रशासनिक VPN सेवा सक्रिय थी।
मौजूदा सिंथेटिक फ्लोट मॉड्यूल को उस पूर्ण बिल्ड के विरुद्ध पुनः बनाया गया और स्थानांतरण के बाद चेकसम और vermagic द्वारा सत्यापित किया गया। IPv4 और IPv6 परिणाम अपरिवर्तित रहे: active-peer और endpoint-update जाँच दोनों वेरिएंट में पास हुईं; removed-peer इनवेरिएंट बेसलाइन में विफल रहा और पैच किए गए वेरिएंट में पास हुआ। दिए गए फ़िल्टर किए गए टेस्ट लॉग में कोई KASAN त्रुटि नहीं दिखी। यह सिंथेटिक टेस्ट का KASAN-सक्षम निष्पादन है, मूल use-after-free का KASAN पुनरुत्पादन नहीं। VPN-IP-केवल टेस्ट को KASAN के अंतर्गत पुनः नहीं चलाया गया।
टेस्ट मॉड्यूल को अनलोड किया गया। इसके बाद VM वितरण कर्नेल 7.0.0-38-generic पर लौट आया, और प्रशासनिक VPN के सक्रिय होने की पुष्टि की गई। अलग से स्थापित टेस्ट कर्नेल और उसके मॉड्यूल भविष्य के परीक्षण के लिए उपलब्ध रहते हैं; वितरण कर्नेल को GRUB डिफ़ॉल्ट के रूप में कॉन्फ़िगर किया गया है।