हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!
CVE-2026-52924 — CVE-2026-52924 का तकनीकी विश्लेषण, जो Linux कर्नेल SCTP स्टेल कुकी हैंडलिंग में एक गंभीर use-after-free दोष है, जिसमें root cause, attack flow, fix, और detection methods शामिल हैं। | Kitploit
CVE-2026-52924 का तकनीकी विश्लेषण, जो Linux कर्नेल SCTP स्टेल कुकी हैंडलिंग में एक गंभीर use-after-free दोष है, जिसमें root cause, attack flow, fix, और detection methods शामिल हैं।
CVE-2026-52924: SCTP स्टेल कुकी हैंडलिंग में यूज़-आफ्टर-फ्री
भेद्यता सारांश
CVE ID: CVE-2026-52924 गंभीरता: CRITICAL (CVSS 9.8) घटक: Linux Kernel - SCTP (स्ट्रीम कंट्रोल ट्रांसमिशन प्रोटोकॉल) प्रकार: यूज़-आफ्टर-फ्री (CWE-416, CWE-825) प्रकाशित: 2026-06-24 स्थिति: ठीक किया गया
प्रभावित संस्करण
Linux Kernel < 5.10.259
Linux Kernel < 5.15.210
Linux Kernel < 6.1.176
Linux Kernel < 6.6.143
Linux Kernel < 6.12.94
Linux Kernel < 6.18.36
Linux Kernel < 7.0.13
Linux Kernel < 7.1
तकनीकी विवरण
मूल कारण
यह भेद्यता SCTP स्टेट मशीन की स्टेल COOKIE-ECHO पैकेट की हैंडलिंग में होती है। समस्या में आउटबाउंड स्ट्रीम कतार की अनुचित सफाई शामिल है जब कोई एसोसिएशन रोलबैक होता है।
हमले का प्रवाह
सामान्य संचालन: एसोसिएशन COOKIE_ECHOED स्थिति में जाता है
उपयोगकर्ता डेटा कतारबद्ध: एप्लिकेशन डेटा भेजता है, जो ट्रांसमिशन के लिए कतारबद्ध होता है
स्टेल कुकी त्रुटि: दूरस्थ पीयर एक स्टेल कुकी त्रुटि भेजता है
रोलबैक ट्रिगर: एसोसिएशन COOKIE_ECHOED → COOKIE_WAIT से रोलबैक होता है
स्ट्रीम स्थिति अपडेट:sctp_stream_update() पुरानी स्ट्रीम तालिका को मुक्त करता है, नई स्थापित करता है
अमान्य पॉइंटर:stream->out_curr अभी भी मुक्त sctp_stream_out प्रविष्टि की ओर इशारा करता है
डीक्यू एक्सेस: जब शेड्यूलर डीक्यू करने की कोशिश करता है (FCFS, RR, PRIO), यह out_curr->ext तक पहुंचता है
यूज़-आफ्टर-फ्री: मुक्त मेमोरी तक पहुंच → KASAN डिटेक्शन के माध्यम से कर्नेल क्रैश
समस्याग्रस्त कोड प्रवाह
root@kitploit:~
sctp_sf_do_5_2_6_stale():
├─ स्टेल कुकी त्रुटि प्राप्त करें
├─ एसोसिएशन स्थिति रोलबैक करें
└─ sctp_stream_update() कॉल करें
├─ पुरानी स्ट्रीम तालिका मुक्त करें
├─ नई स्ट्रीम तालिका स्थापित करें
└─ BUG: stream->out_curr अमान्य नहीं किया गया ❌
बाद में डीक्यू करते समय:
sctp_sched_fcfs_dequeue():
└─ stream->out_curr->ext तक पहुंचें (मुक्त मेमोरी) 💥
क्रैश उदाहरण
root@kitploit:~
BUG: KASAN: slab-use-after-free in sctp_sched_fcfs_dequeue+0x13a/0x140
Read of size 8 at addr ff1100004d4d3208 by task mini_poc/9312
CPU: 1 UID: 1001 PID: 9312 Comm: mini_poc Not tainted 7.1.0-rc1-00305-gbd3a4795d574 #5 PREEMPT(full)
Call trace:
sctp_sched_fcfs_dequeue+0x13a/0x140
sctp_outq_flush+0x1603/0x33e0
sctp_do_sm+0x31c9/0x5d30
sctp_assoc_bh_rcv+0x392/0x6f0
sctp_inq_push+0x1db/0x270
sctp_rcv+0x138d/0x3c10
केवल out_curr अपडेट करना पर्याप्त क्यों नहीं है
एक सरल फिक्स केवल stream->out_curr को साफ करना हो सकता है:
root@kitploit:~
// अपर्याप्त फिक्स ❌
stream->out_curr = NULL;
समस्या: आउटक्यू में अभी भी शामिल है:
पुरानी स्ट्रीम स्थिति का संदर्भ देने वाले कतारबद्ध डेटा चंक
पुरानी स्ट्रीम की ओर इशारा करने वाली रीट्रांसमिट कतार प्रविष्टियाँ
पुराने स्ट्रीम मेटाडेटा के साथ बंडल किए गए नियंत्रण चंक
ये स्टेल संदर्भ एक्सेस होने पर अभी भी यूज़-आफ्टर-फ्री का कारण बनेंगे।
सही फिक्स
समाधान: स्टेल कुकी हैंडलिंग के दौरान एसोसिएशन की आउटक्यू को पूरी तरह से शुद्ध करें।
root@kitploit:~
// सही फिक्स ✓
sctp_outq_free(&asoc->outqueue);
यह सुनिश्चित करता है:
सभी लंबित ट्रांसमिट डेटा हटा दिया जाता है
सभी रीट्रांसमिट कतार प्रविष्टियाँ मुक्त हो जाती हैं
शेड्यूलर कैश्ड पॉइंटर्स (out_curr, आदि) अमान्य हो जाते हैं
COOKIE_WAIT पुनरारंभ के दौरान स्ट्रीम स्थिति सुरक्षित रूप से पुनर्निर्मित की जा सकती है
मुक्त स्ट्रीम प्रविष्टियों का कोई लटकता संदर्भ नहीं
कार्यान्वयन स्थान
फ़ाइल:net/sctp/sm_statefuns.c फ़ंक्शन:sctp_sf_do_5_2_6_stale() जोड़:sctp_stream_update() से पहले sctp_outq_free(&asoc->outqueue) कॉल करें
root@kitploit:~
enum sctp_disposition sctp_sf_do_5_2_6_stale(...)
{
// ... मौजूदा कोड ...
// स्ट्रीम स्थिति पुनर्निर्माण से पहले आउटक्यू शुद्ध करें
sctp_outq_free(&asoc->outqueue);
// अब स्ट्रीम अपडेट करना सुरक्षित है
sctp_stream_update(&asoc->stream, &asoc->c.h_init_tag);
// ... फ़ंक्शन का शेष भाग ...
}
प्रभाव विश्लेषण
गंभीरता कारक (CVSS 9.8)
हमला वेक्टर: नेटवर्क (CVSS:3.1/AV:N)
हमला जटिलता: कम (CVSS:3.1/AC:L)
आवश्यक विशेषाधिकार: कोई नहीं (CVSS:3.1/PR:N)
उपयोगकर्ता सहभागिता: कोई नहीं (CVSS:3.1/UI:N)
दायरा: अपरिवर्तित (CVSS:3.1/S:U)
गोपनीयता प्रभाव: उच्च (CVSS:3.1/C:H)
अखंडता प्रभाव: उच्च (CVSS:3.1/I:H)
उपलब्धता प्रभाव: उच्च (CVSS:3.1/A:H)
शोषण आवश्यकताएँ
लक्ष्य प्रणाली तक नेटवर्क पहुंच (SCTP पोर्ट खुला)
कनेक्शन स्थापित करने के लिए SCTP पैकेट भेजने की क्षमता
विशिष्ट समय पर स्टेल कुकी त्रुटि भेजें (COOKIE_ECHOED स्थिति)
शेड्यूलर डीक्यू ऑपरेशन ट्रिगर करें
हमले के परिदृश्य
सेवा से वंचित: कर्नेल को बार-बार क्रैश करें → DoS
सूचना प्रकटीकरण: UAF के माध्यम से कर्नेल मेमोरी पढ़ें
विशेषाधिकार वृद्धि: मेमोरी हेरफेर के माध्यम से संभावित
दूरस्थ कोड निष्पादन: मेमोरी भ्रष्टाचार शोषण के साथ संभव
पहचान विधियाँ
KASAN डिटेक्शन (रनटाइम)
root@kitploit:~
# कर्नेल कॉन्फ़िग में KASAN सक्षम करें
CONFIG_KASAN=y
CONFIG_KASAN_GENERIC=y
# रनटाइम आउटपुट दिखाता है:
BUG: KASAN: slab-use-after-free
स्थैतिक विश्लेषण
root@kitploit:~
# सत्यापन के बिना असुरक्षित stream->out_curr एक्सेस देखें
grep -r "out_curr->ext" net/sctp/
grep -r "out_curr->" net/sctp/sched*.c
नेटवर्क डिटेक्शन
SCTP स्टेल कुकी ERROR पैकेट (टाइप 3, कोड 1) के लिए निगरानी करें
कनेक्शन रोलबैक पैटर्न ट्रैक करें
तेज़ COOKIE_ECHOED → COOKIE_WAIT संक्रमणों पर अलर्ट करें