CVE-2026-31721
usb: gadget: f_hid: बाइंड से एलोक में सूची और स्पिनलॉक इनिशियलाइज़ेशन स्थानांतरित करें
- प्रकाशित
- 1 मई 2026
- अद्यतन
- 11 मई 2026
- सीएनए असाइन करना
- Linux
- साक्ष्य देखे गए
- 27 अग॰ 2026
प्राथमिक सीवीएसएस
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:Hकम · अगले 30 दिन
- प्रतिशत
- 2.7%
- मॉडल दिनांक
- 21 सित॰ 2026
ईपीएसएस एक सांख्यिकीय अनुमान है, कोई निश्चितता या प्रभाव का माप नहीं। इसे सीवीएसएस, केईवी स्थिति, एक्सपोज़र और अपने वातावरण के साथ मिलाएं।
सारांश
Linux कर्नेल में, निम्नलिखित भेद्यता को हल किया गया है: usb: gadget: f_hid: सूची और spinlock इनिशियलाइज़ेशन को bind से alloc में स्थानांतरित करें एक समस्या थी जब आपने निम्नलिखित किया: - एक hid गैजेट सेटअप और bind करें - /dev/hidg0 खोलें - परिणामी fd को EPOLL_CTL_ADD में उपयोग करें - UDC को unbind करें - UDC को bind करें - fd को EPOLL_CTL_DEL में उपयोग करें जब CONFIG_DEBUG_LIST सक्षम था, तो remove_wait_queue (ep_remove_wait_queue के माध्यम से) के भीतर एक list_del भ्रष्टाचार की रिपोर्ट की गई थी। कुछ डिबगिंग के बाद मैंने पाया कि वे कतारें, जिन्हें f_hid poll_wait के माध्यम से पंजीकृत करता है, समस्या थीं। इन्हें hidg_bind के अंदर init_waitqueue_head का उपयोग करके इनिशियलाइज़ किया गया था। इसलिए प्रभावी रूप से, bind फ़ंक्शन ने कतारों को फिर से इनिशियलाइज़ किया जबकि उनमें अभी भी आइटम मौजूद थे। समाधान यह है कि इनिशियलाइज़ेशन को hidg_bind से hidg_alloc में स्थानांतरित किया जाए ताकि उनका जीवनकाल फ़ंक्शन इंस्टेंस के जीवनकाल तक बढ़ाया जा सके। इसके अतिरिक्त, मैंने bind फ़ंक्शन में कई अन्य संभावित समस्याग्रस्त init कॉल भी पाए, जिन्हें मैंने भी स्थानांतरित कर दिया।
स्रोत
1तीन प्रकाशित f_hid फिक्सों के बैकपोर्ट (CVE-2026-31721, CVE-2026-31606 सहित) एक EOL Linux 4.14.190 Android वेंडर कर्नेल के लिए, डिवाइस-पर सत्यापन रिकॉर्ड के साथ।
जिम्मेदारीपूर्ण उपयोग
भेद्यता जानकारी का उपयोग केवल उन प्रणालियों पर करें जिनके मालिक आप हैं या परीक्षण के लिए अधिकृत हैं। किटप्लॉइट सार्वजनिक अनुसंधान मेटाडेटा से लिंक करता है और शोषण कोड या दुर्भावनापूर्ण पेलोड को संग्रहीत नहीं करता है।