CVE-2026-68138
net/sched: qdisc_rtab_list को समवर्ती get/put के विरुद्ध क्रमबद्ध करें
- प्रकाशित
- 10 अग॰ 2026
- अद्यतन
- 23 अग॰ 2026
- सीएनए असाइन करना
- Linux
- साक्ष्य देखे गए
- 19 अग॰ 2026
प्राथमिक सीवीएसएस
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:Hकम · अगले 30 दिन
- प्रतिशत
- 21.0%
- मॉडल दिनांक
- 21 सित॰ 2026
ईपीएसएस एक सांख्यिकीय अनुमान है, कोई निश्चितता या प्रभाव का माप नहीं। इसे सीवीएसएस, केईवी स्थिति, एक्सपोज़र और अपने वातावरण के साथ मिलाएं।
सारांश
Linux कर्नेल में, निम्नलिखित भेद्यता को हल किया गया है: net/sched: समवर्ती get/put के विरुद्ध qdisc_rtab_list को serialize करें qdisc_get_rtab() और qdisc_put_rtab() प्रक्रिया-वैश्विक एकल-लिंक्ड सूची qdisc_rtab_list और बिना किसी लॉक के एक साधारण गैर-परमाणु 'int refcnt' को संशोधित करते हैं। यह केवल इसलिए सुरक्षित था क्योंकि ऐतिहासिक रूप से प्रत्येक कॉलर RTNL म्यूटेक्स रखता था, जो सभी रेट-टेबल लुकअप, इंसर्ट और फ्री को क्रमबद्ध करता था। वह इनवेरिएंट अब मान्य नहीं है। cls_flower TCF_PROTO_OPS_DOIT_UNLOCKED सेट करता है, इसलिए tc_new_tfilter() इसके लिए rtnl_held == false रखता है और TCA_ACT_FLAGS_NO_RTNL सेट करता है। वह फ्लैग tcf_exts_validate_ex() -> tcf_action_init() -> tcf_action_init_1() -> tcf_police_init() के माध्यम से प्रसारित होता है, जो RTNL म्यूटेक्स को धारण किए बिना qdisc_get_rtab()/qdisc_put_rtab() को कॉल करता है। विभिन्न CPUs पर दो RTM_NEWTFILTER अनुरोध, प्रत्येक समान दर वाली police क्रिया के साथ एक flower फ़िल्टर जोड़ते हुए, फिर qdisc_rtab_list और गैर-परमाणु refcnt पर प्रतिस्पर्धा करते हैं, जिससे kmalloc-2k struct qdisc_rate_table का use-after-free / double-free होता है। qdisc_rtab_list एक एकल वैश्विक (per-netns नहीं) है, इसलिए दूषित ऑब्जेक्ट सिस्टम-व्यापी रूप से साझा किया जाता है। BUG: KASAN: qdisc_put_rtab+0x12f/0x160 में slab-use-after-free qdisc_put_rtab+0x12f/0x160 tcf_police_init+0xda9/0x1590 tcf_action_init_1+0x460/0x6b0 tcf_action_init+0x439/0xa40 tcf_exts_validate_ex+0x42d/0x550 fl_change+0xddd/0x7da0 tc_new_tfilter+0xaa7/0x2420 rtnetlink_rcv_msg+0x95e/0xe90 जो आकार 2048 के कैश kmalloc-2k से संबंधित है qdisc_rtab_list और refcount को एक समर्पित spinlock से सुरक्षित रखें। qdisc_get_rtab() में (स्लीपिंग, GFP_KERNEL) आवंटन लॉक लेने से पहले किया जाता है; यदि इस बीच एक समवर्ती इंसर्टर ने समान टेबल जोड़ दी है, तो नया आवंटित टेबल लॉक के अंतर्गत मुक्त कर दी जाती है, इसलिए कोई डुप्लिकेट लीक नहीं होता। qdisc_put_rtab() अब refcount घटाता है और उसी लॉक के अंतर्गत अनलिंक करता है।
स्रोत
3- CVE-2026-68138एक्सप्लॉइट
जिम्मेदारीपूर्ण उपयोग
भेद्यता जानकारी का उपयोग केवल उन प्रणालियों पर करें जिनके मालिक आप हैं या परीक्षण के लिए अधिकृत हैं। किटप्लॉइट सार्वजनिक अनुसंधान मेटाडेटा से लिंक करता है और शोषण कोड या दुर्भावनापूर्ण पेलोड को संग्रहीत नहीं करता है।