Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
cve-2026-98432 — CVE-2026-98432 के लिए केवल-प्रमाण PoC, एक Linux IPv4/TCP ireq_opt use-after-free: रेस ट्रिगर और heap-reuse oracle जो कोड निष्पादन के बिना UAF की पुष्टि करता है। | Kitploit
उपकरण/GitHubGitHub/alucard0x1/cve-2026-98432
रक्षात्मक उपकरणभेद्यता विश्लेषणशोषणफज़िंगनेटवर्क सुरक्षापेपर और शोध
GitHubalucard0x1/cve-2026-98432

cve-2026-98432

CVE-2026-98432 के लिए केवल-प्रमाण PoC, एक Linux IPv4/TCP ireq_opt use-after-free: रेस ट्रिगर और heap-reuse oracle जो कोड निष्पादन के बिना UAF की पुष्टि करता है।

रिपॉजिटरी देखें
17456 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2026-98432 — Linux IPv4/TCP ireq_opt use-after-free PoC

CVE-2026-98432 (CVSS 9.8) के लिए केवल-प्रमाण proof of concept: Linux IPv4/TCP स्टैक में दूरस्थ रूप से ट्रिगर होने वाला use-after-free।

केवल अधिकृत सुरक्षा परीक्षण के लिए। इसे उन सिस्टमों के विरुद्ध चलाएँ जिनके आप स्वामी हैं या जिनका परीक्षण करने की आपके पास स्पष्ट अनुमति है।


यह क्या सिद्ध करता है

यह PoC उस रेस को ट्रिगर करता है और उसका पता लगाता है जब कर्नेल किसी मुक्त किए गए ip_options_rcu ऑब्जेक्ट से बाइट्स को SYN-ACK में कॉपी करता है। यह उपयोगकर्ता या फ़ाइलें नहीं बनाता, और यह कोड-एग्ज़िक्यूशन चेन लागू नहीं करता।

एक हिट का अर्थ है कि सर्वर ने अपने SYN-ACK में किसी अन्य एलोकेशन के मार्कर को लौटाया — एक सही कर्नेल ऐसा नहीं कर सकता। Ubuntu 24.04.5 पर कर्नेल 6.8.0-147-generic (Ubuntu द्वारा असुरक्षित सूचीबद्ध; फ़िक्स 6.8.0-149 में कतारबद्ध) के साथ एक नियंत्रित परीक्षण में, 180-सेकंड के लूपबैक रन ने 320,829 प्रयासों में 21 हिट उत्पन्न किए, और 300-सेकंड के रन ने 616,911 प्रयासों में 22 हिट उत्पन्न किए। कर्नेल साफ़ रहा (tainted=0, कोई oops नहीं)।

उस होस्ट से कोई पैकेट कैप्चर या लॉग यहाँ शामिल नहीं हैं; PoC का अपना आउटपुट ही साक्ष्य है।


1. बग

IPv4 विकल्पों वाला एक SYN कर्नेल को रिक्वेस्ट सॉकेट के लिए एक ip_options_rcu (72 बाइट्स, kmalloc-96) बनाने पर मजबूर करता है। जब हैंडशेक पूरा होता है, तो tcp_v4_syn_recv_sock() उस ऑब्जेक्ट को बिना कॉपी किए चाइल्ड सॉकेट को सौंप देता है, फिर रिक्वेस्ट सॉकेट में पॉइंटर को साफ़ कर देता है। एक दूसरा CPU जो पहले ही रिक्वेस्ट सॉकेट को खोज चुका है, अभी भी tcp_check_req() → tcp_v4_send_synack() → ip_build_and_send_pkt() → ip_options_build() के अंदर हो सकता है, और उसी ऑब्जेक्ट को पढ़ रहा हो सकता है। चाइल्ड सॉकेट SOCK_RCU_FREE नहीं हैं, और inet_sock_destruct() inet_opt को एक साधारण kfree() से मुक्त करता है, इसलिए यदि उस विंडो में चाइल्ड को तोड़ दिया जाए तो रीडर मुक्त मेमोरी को डीरेफ़रेंस करता है।

रिक्वेस्ट-सॉकेट माइग्रेशन (net.ipv4.tcp_migrate_req=1 या एक BPF reuseport प्रोग्राम) के साथ एक दूसरा प्रकार भी मौजूद है; फ़िक्स inet_sock_destruct() और tcp_v4_reqsk_destructor() दोनों में kfree_rcu() का उपयोग करता है।

Linux 4.4 (079096f103fa) में पेश किया गया; mainline 7.3 में ठीक किया गया और 5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.56 और 7.2.10 में बैकपोर्ट किया गया। प्रभावित: Linux 4.4 और बाद के संस्करण, अनपैच्ड।

प्रभाव दूरस्थ क्रैश (DoS) से लेकर कर्नेल मेमोरी डिस्क्लोज़र और, एक पूर्ण एक्सप्लॉइट चेन के साथ, कोड एग्ज़िक्यूशन तक फैला है। यह रिपॉज़िटरी use-after-free को सिद्ध करने तक ही सीमित है।


2. PoC कैसे काम करता है

प्रति प्रयास:

  1. SYN 40-बाइट IPv4 Timestamp विकल्प (या Record Route) के साथ → ireq_opt वाला रिक्वेस्ट सॉकेट; लक्ष्य अपने SYN-ACK में विकल्प को प्रतिध्वनित करता है।
  2. डुप्लिकेट शुद्ध SYN हैंडशेक ACK से ठीक पहले भेजा जाता है, ताकि एक दूसरा CPU रिक्वेस्ट सॉकेट के विरुद्ध SYN-ACK पथ चलाए।
  3. ACK हैंडशेक पूरा करता है; चाइल्ड inet_opt विरासत में लेता है, रिक्वेस्ट सॉकेट अपना पॉइंटर छोड़ देता है।
  4. RST (ACK के साथ, ताकि यह स्थानीय RST फ़िल्टर से बच जाए) चाइल्ड को तोड़ देता है, ऑब्जेक्ट को मुक्त कर देता है जबकि डुप्लिकेट-SYN रीडर अभी भी उसका उपयोग कर रहा हो सकता है।

Oracle। प्रत्येक प्रयास विकल्प ऑफ़सेट 16..23 पर एक अद्वितीय 32-बिट मैजिक और एक चेक टैग एम्बेड करता है। उपयोगकर्ता-स्पेस रीडर के विकल्प देखने से पहले तीन रीराइट होते हैं:

चरणस्लॉट
SYN पर सर्वर ip_options_compile()4..7 (TS) / 3..6 (RR)
SYN-ACK के लिए सर्वर ip_options_build()8..11 (TS) / 7..10 (RR)
SYN-ACK पर प्राप्तकर्ता होस्ट ip_options_compile()12..15 (TS) / 11..14 (RR)

मार्कर इन तीनों से आगे रहता है। एक SYN-ACK जो किसी भिन्न एलोकेशन के मैजिक को प्रतिध्वनित करता है (tag == magic ^ 0x5a5a5a5a के साथ) यह सिद्ध करता है कि रीडर ने मुक्त-और-पुनःउपयोग किए गए ऑब्जेक्ट से कॉपी किया।


3. आवश्यकताएँ

  • Linux, root या CAP_NET_RAW; स्वचालित RST फ़िल्टर के लिए CAP_NET_ADMIN (root) आवश्यक है।
  • लक्ष्य: अनपैच्ड Linux जिसमें एक IPv4 TCP लिसनर हो जो accept() करता हो।
  • Python 3.8+ (3.12 पर परीक्षित), केवल मानक लाइब्रेरी।
  • बेयर-RST फ़िल्टर के लिए iptables/nftables।

--proof एक ही होस्ट पर आत्म-निहित है: यह एक लूपबैक लिसनर शुरू करता है और उसके साथ रेस करता है।


4. त्वरित शुरुआत

4.1 ऑफ़लाइन स्व-परीक्षण (कोई भी OS, कोई सॉकेट नहीं)

python3 poc_cve_2026_98432.py --selftest

4.2 कर्नेल जाँच (परीक्षण के अधीन होस्ट पर चलाएँ)

sudo python3 poc_cve_2026_98432.py --check

चल रहे कर्नेल, फ़िक्स्ड-रिलीज़ तालिका और प्रासंगिक sysctls को प्रिंट करता है।

4.3 एक-कमांड प्रमाण (अनुशंसित)

sudo python3 poc_cve_2026_98432.py --proof 9000 \
     --duration 180 --workers 6 --spray 2 --spray-rate 1000 \
     --pcap /tmp/proof.pcap

127.0.0.1:9000 पर एक लिसनर शुरू करता है, रेस चलाता है, एक निर्णय प्रिंट करता है, लिसनर को रोकता है, और अस्थायी फ़ायरवॉल नियम को हटा देता है। होस्ट पर कुछ भी नहीं बनाया जाता — केवल क्षणिक TCP स्थिति।

4.4 दूरस्थ लिसनर की जाँच करें

sudo python3 poc_cve_2026_98432.py --probe <TARGET>:<PORT>

एक SYN: रिपोर्ट करता है कि लक्ष्य MPTCP लिसनर है या नहीं और क्या यह IPv4 विकल्प को प्रतिध्वनित करता है (जो oracle के लिए आवश्यक है)।

4.5 रिमोट रेस (लैब LAN)

sudo python3 poc_cve_2026_98432.py <TARGET>:<PORT> \
     --workers 16 --spray 4 --duration 600 --pcap hits.pcap

सार्वजनिक पतों को अस्वीकार कर दिया जाता है जब तक कि --allow-public न दिया गया हो। बेयर-RST फ़िल्टर स्वचालित रूप से इंस्टॉल हो जाता है और बाहर निकलने पर हटा दिया जाता है।

4.6 स्टैंडअलोन लैब लिसनर

python3 poc_cve_2026_98432.py --listen 9000 --mptcp

127.0.0.1 पर बाइंड होता है; केवल किसी रिमोट हमलावर होस्ट के लिए --listen-any जोड़ें। लिस्नर प्रत्येक कनेक्शन को स्वीकार करता है और तुरंत SO_LINGER(0) के साथ बंद कर देता है, जिससे चाइल्ड तेज़ी से मुक्त हो जाता है।


5. आउटपुट पढ़ना

फ़ील्डअर्थ
attemptsशुरू किए गए हैंडशेक
synacksदेखे गए SYN-ACK (प्रति प्रयास लगभग दो)
hitsSYN-ACK में किसी अन्य एलोकेशन का मार्कर था → UAF की पुष्टि
anomaliesमार्कर पार्स हुआ लेकिन टैग मेल नहीं खाया (आंशिक करप्शन)
leaksइको किए गए बाइट्स में कर्नेल-पॉइंटर जैसा दिखने वाला मान
nooptइको किए गए विकल्प के बिना SYN-ACK (syncookies/क्यू फुल/स्ट्रिपिंग)
staleदेर से आया SYN-ACK रीट्रांसमिशन फ़िल्टर किया गया (हिट नहीं)
malformedihl < 5 वाला SYN-ACK (स्टेल-optlen अंडरफ़्लो सिग्नेचर)
timeouts--timeout के भीतर कोई SYN-ACK नहीं
sprayभेजे गए हीप-स्प्रे SYN

नमूना हिट:

[!] UAF ORACLE HIT #1 at attempt sport=63042 (expected magic f815ca68 tag a24f9032)
    tcp <TARGET>:9000 -> <CLIENT>:63042 seq=c20ed8ef ack=d212b2b1 flags=0x12
    SYN-ACK echoed magic d4bcdcc7 tag 8ee6869d, belongs to another allocation
    ip options:
    44 28 11 00 03 71 b0 b5 03 71 cc 73 03 71 cc 73
    d4 bc dc c7 8e e6 86 9d 00 00 00 00 00 00 00 00

0x8ee6869d == 0xd4bcdcc7 ^ 0x5a5a5a5a: टैग संबंध सिद्ध करता है कि प्रतिध्वनित बाइट्स किसी भिन्न आवंटन से एक वैध मार्कर हैं।

एग्ज़िट कोड: 0 = साक्ष्य देखा गया, 3 = कोई नहीं, 2 = सेटअप त्रुटि, 1 = उपयोग/रनटाइम त्रुटि।


6. ट्यूनिंग

यह रेस संभाव्यात्मक है। परीक्षण होस्ट पर, कम से कम 3 मिनट के लिए --workers 6 --spray 2 --spray-rate 1000 ने इसे पुनरुत्पादित किया; उसी होस्ट पर --workers 4 --spray 1 --spray-rate 500 के साथ 60-सेकंड के रन ने शून्य हिट उत्पन्न किए। किसी छोटे रन से "असुरक्षित नहीं" का निष्कर्ष न निकालें।

  • --duration — अधिक प्रयास; प्रकाशित शोध में कई दसियों मिनट लगे।
  • --workers — अधिक समवर्ती प्रयास (LAN पर 8–16)।
  • --spray / --spray-rate — kmalloc-96 को लगातार बदलता रखता है ताकि मुक्त किए गए विकल्प ऑब्जेक्ट पुनः उपयोग में आएं।
  • --lead / --rst-delta / --jitter — माइक्रोसेकंड टाइमिंग स्वीप; 20/40/10 से शुरू करें और lead 0–40, delta 0–80 स्वीप करें।
  • लूपबैक LAN से बेहतर है; LAN इंटरनेट से बेहतर है।

7. लैब पुनरुत्पादन

विकास के लिए एक डिस्पोज़ेबल VM अधिक सुरक्षित है। दो फ़िक्स लाइनों को वापस लाकर एक कमज़ोर 6.12.112 कर्नेल बनाएं:

टूल डाउनलोड करें