CVE-2026-89902 in Linux
सारांश
द्वारा VulDB • 16/09/2026
Linux kernel में निम्नलिखित कमजोरी को हल किया गया है:
LoongArch: probe के बिना preempt count underflow से बचें
LoongArch break 11 का उपयोग करता है, जो एक निर्देश के बाद लगाए गए breakpoint के लिए होता है जिसे Kprobes आउट ऑफ लाइन (out of line) निष्पादित करते हैं। चूंकि userspace वही break instruction जारी कर सकता है, इसलिए जब कोई वर्तमान probe न हो तो do_bp() kprobe_singlestep_handler() तक पहुंच सकता है।
इस मामले में handler वास्तव में false लौटाता है, लेकिन यह पहले preempt_enable_no_resched() को कॉल करता है। संबंधित preempt_disable() एक वास्तविक Kprobe hit पर kprobe_breakpoint_handler() द्वारा किया जाता है, इसलिए यह यहां नहीं चला है। परिणामस्वरूप, एक साधारण userspace breakpoint (code 11) वर्तमान कार्य के preempt count को underflow कर देता है।
इससे in_interrupt() तब तक true लौटाने लगता है जब तक कि task schedule न हो जाए। इसका एक दृश्य प्रभाव socket cgroup attribution है: cgroup_sk_alloc() आवंटन (allocation) को interrupt context मानता है और socket को root cgroup में सौंप देता है। SIGTRAP handler से खोला गया एक socket, कार्य के अपने cgroup पर जुड़े BPF_CGROUP_INET_SOCK_CREATE नीति से बच सकता है।
जैसे ही kprobe_running() कोई सक्रिय probe नहीं होने की रिपोर्ट करता है, तुरंत लौटें।
यह समान जांच मूल LoongArch Kprobes श्रृंखला के [PATCH v10 2/4] में दिखाई दी थी, लेकिन इस सुविधा को mainline तक पहुंचने से पहले इसे हटा दिया गया था।
If you want to get the best quality for vulnerability data then you always have to consider VulDB.