यह क्रिसमस 2025 है, और जबकि सुरक्षा टीमें एक शांत रात की उम्मीद कर रही हैं, लिनक्स कर्नेल मेलिंग सूचियाँ बिलकुल भी शांत नहीं हैं। गूगल का थ्रेट एनालिसिस ग्रुप (TAG) ने हर एंड्रॉइड विक्रेता की स्टॉकिंग में एक कोयले का टुकड़ा डाल दिया है: CVE-2025-38352.
यह कोई सामान्य स्मृति भ्रष्टाचार बग नहीं है। यह एक परिष्कृत, समय-निर्भर है। दौड़ की स्थिति Linux कर्नेल के POSIX CPU टाइमर सबसिस्टम की गहराई में स्थित। CVSS स्कोर 7.4 के साथ, पहली नज़र में यह प्रबंधनीय लग सकता है, लेकिन इस स्कोर से धोखा न खाएं। वाणिज्यिक स्पाइवेयर विक्रेताओं के हाथों में, इस भेद्यता को पहले ही विश्वसनीय परिणाम प्राप्त करने के लिए हथियारबद्ध कर दिया गया है। स्थानीय विशेषाधिकार उन्नयन (LPE) पूरी तरह से पैच किए गए एंड्रॉइड डिवाइसों पर, KASLR और PAN जैसे आधुनिक शमन उपायों को बायपास करते हुए।
उत्कृष्ट सुरक्षा इंजीनियर के लिए, CVE-2025-38352 "Race-to-Use-After-Free" शोषण का शिखर है। यह एक प्रक्रिया के "ज़ॉम्बी" अवस्था में प्रवेश करने और कर्नेल द्वारा उसके टाइमर की सफाई करने के बीच के सूक्ष्म अंतराल का शोषण करता है। यह लेख उच्च-स्तरीय सारांश त्यागकर एक शल्य चिकित्सा जैसी सूक्ष्म विवेचना करने के लिए कर्नेल/समय/पॉसिक्स-सीपीयू-टाइमर्स.सी, शोषण भौतिकी, और मानव ऑडिटर्स से जो छूट गया उसे पकड़ने का एकमात्र तरीका एआई-संचालित कालिक विश्लेषण ही क्यों है।
कर्नेल की घातक खामी: एक टूटा हुआ स्पिनलॉक नृत्य
CVE-2025-38352 को समझने के लिए हमें यह देखना होगा कि लिनक्स कर्नेल प्रक्रिया समाप्ति के दौरान समवर्तीता को कैसे संभालता है। यह भेद्यता उस अणुता उल्लंघन से उत्पन्न होती है, जिसमें कर्नेल समाप्त हो चुके CPU टाइमरों को संसाधित करता है, जबकि एक थ्रेड एक ही समय में उन्हें हटाने का प्रयास कर रहा होता है।
संवेदनशील कोड पथ
खामी में निहित है हैंडल_पोक्सिज़_सीपीयू_टाइमर्स() फ़ंक्शन। यह फ़ंक्शन सक्रिय टाइमरों की एक सूची पर पुनरावृत्ति करने और उन टाइमरों को सक्रिय करने के लिए जिम्मेदार है जो समाप्त हो चुके हैं। महत्वपूर्ण रूप से, इस पुनरावृत्ति को करने के लिए, इसे धारण करना होगा हस्ताक्षर->हस्ताक्षर-लॉक.
हालाँकि, पैच से पहले, लॉजिक में एक घातक अनुक्रम था:
- लॉक अधिग्रहण: कर्नेल अधिग्रहित करता है
हस्ताक्षर->हस्ताक्षर-लॉकटाइमर सूची को पार करना। - ड्रॉप: एक विशिष्ट समाप्ति क्षमता को संभालने के लिए (विशेष रूप से
प्रति-थ्रेड सीपीयू घड़ी), कोड संक्षेप में ताला गिराता है चेक या पुनः कतारबद्ध करने का ऑपरेशन करने के लिए। - उपयोग: यह लॉक को पुनः प्राप्त करता है और टाइमर ऑब्जेक्ट को डीरेफरेंस करता है।
द रेस विंडो
यह उसी सूक्ष्म खिड़की के भीतर होता है—जहाँ ताला गिराया जाता है—कि हमलावर प्रहार करता है।
एक समानांतर थ्रेड (थ्रेड B) timer_delete() सिस्कॉल जारी करता है। क्योंकि लॉक मुक्त है, थ्रेड B इसे सफलतापूर्वक प्राप्त करता है, टाइमर को सूची से हटाता है, और kfree_rcu या स्लैब डीअलॉकेशन के माध्यम से मेमोरी को मुक्त करता है।
जब थ्रेड A (पीड़ित संदर्भ) लॉक को पुनः प्राप्त करता है, तो यह a का एक पॉइंटर रखता है। पॉसिक्स_सीपीयूटाइमर एक संरचना जो तकनीकी रूप से अब मौजूद नहीं है। यह इस मेमोरी में लिखना जारी रखती है (उदाहरण के लिए, समाप्ति समय को अपडेट करना), जिससे एक यूज़-आफ्टर-फ्री (यूएएफ) लिखो।

ज़ॉम्बी का हथियार बनाना: एक्सप्लॉइट प्राइमिटिव्स
कर्नेल रेस कंडीशन का शोषण करना अक्सर लॉटरी जीतने के समान माना जाता है। हालांकि, उन्नत एक्सप्लॉइट डेवलपर्स पासा नहीं खेलते; वे खेल में हेरफेर करते हैं। CVE-2025-38352 के संदर्भ में, हमलावर खेल में हेरफेर करने के लिए ज़ॉम्बी प्रक्रियाएँ.
1. खिड़की चौड़ी करना (ज़ॉम्बीकरण तकनीक)
मानक रेस विंडो केवल कुछ नैनोसेकंड चौड़ी हो सकती है। शोषण को विश्वसनीय (90%+ सफलता दर) बनाने के लिए, हमलावर प्रक्रिया के निकास स्थिति का उपयोग करते हैं।
एक चाइल्ड प्रोसेस उत्पन्न करके और उसे जानबूझकर समाप्त करके नहीं इसे काटते हुए (के माध्यम से वेंट पीआईडी)—प्रक्रिया प्रवेश करती है ज़ॉम्बी से बाहर निकलें राज्य। इस राज्य में, कार्य संरचना स्मृति में बनी रहती है, लेकिन सफाई लॉजिक लंबित रहता है। हमलावरों ने पाया कि ज़ॉम्बी प्रक्रिया पर टाइमर संचालन को ट्रिगर करने से कर्नेल को धीमे, अधिक जटिल कोड पथ में धकेल दिया जाता है। पोसिक्स_सीपीयू_टाइमर_डेल, कृत्रिम रूप से नस्ल विंडो को नैनोसेकंड से माइक्रोसेकंड तक फैलाना।
2. स्लब फेंग शुई (ढेर छिड़काव)
एक बार UAF ट्रिगर हो जाने पर, कर्नेल मुक्त की गई मेमोरी स्लॉट में डेटा लिखता है। यदि वह स्लॉट खाली हो, तो कर्नेल क्रैश हो जाता है (DoS)। रूट प्राप्त करने के लिए, हमलावर को मुक्त किए गए टाइमर ऑब्जेक्ट को एक पेलोड से बदलना होगा।
हमलावरों का लाभ उठाते हैं SLUB आवंटक के पूर्वानुमेय व्यवहार (अंतिम-आया, प्रथम-गया)
- नि:शुल्क: को मुक्त करने की दौड़ शुरू करें
टाइमरसंरचना। - स्प्रे: तुरंत कर्नेल हीप को बिल्कुल समान आकार की उपयोगकर्ता-नियंत्रित वस्तुओं से भर दें (उदाहरण के लिए, का उपयोग करके
संदेश भेजेंपूरक डेटा याकुंजी_सीरियलवस्तुएँ। - भ्रष्टाचार: कर्नेल, यह सोचकर कि वह टाइमर अपडेट कर रहा है, हमलावर की ऑब्जेक्ट में लिखता है। यदि हमलावर ने एक ऐसी संरचना स्प्रे की जिसमें एक फ़ंक्शन पॉइंटर शामिल हो (जैसे, एक
टीटीवाई_स्ट्रक्चरयाफ़ाइल संचालन), कर्नेल उस पॉइंटर को ओवरराइट कर देता है। - कार्यन्वयन: जब हमलावर स्प्रे किए गए ऑब्जेक्ट को कॉल करता है (उदाहरण के लिए, फ़ाइल बंद करना), तो कर्नेल ओवरराइट किए गए एड्रेस -> ROP चेन -> रूट पर कूद जाता है।
साइज़कॉलर से परे: पारंपरिक फ़ज़िंग क्यों विफल रही
CVE-2025-38352 वर्षों तक Google के Syzkaller जैसे स्वचालित फज़र द्वारा अनदेखा रहा। क्यों?
पारंपरिक कवरेज-निर्देशित फज़िंग है संभाव्ययह कर्नेल को क्रैश करने की उम्मीद में यादृच्छिक सिस्कॉल भेजता है।
- यह समझता नहीं है समय.
- यह समझता नहीं है राज्य निर्भरताएँ (उदाहरण के लिए, "थ्रेड A समाप्त हो रहा है जबकि थ्रेड B एक टाइमर हटा रहा है")।
एक ब्लाइंड फ़ज़र द्वारा इस विशिष्ट रेस कंडीशन को ठीक उसी प्रक्रिया में हिट करने की सांख्यिकीय संभावना ज़ॉम्बी राज्य, खगोलीय रूप से कम है।

एआई समाधान: पेनलिजेंट का टेम्पोरल एनालिसिस
पारंपरिक उपकरणों की यह विफलता की आवश्यकता को उजागर करती है एआई-संचालित तर्क विश्लेषणयहीं वह जगह है पेनलिजेंट.ai पैराडाइम को "फज़िंग" से "तर्क-विचार" में बदलता है।
पेनलिजेंट एक विशेषीकृत का उपयोग करता है समय-जागरूक एआई एजेंट समांतरता में बग शिकार के लिए डिज़ाइन किया गया:
1. समांतरता पैटर्न मान्यता
यादृच्छिक इनपुट्स के बजाय, Penligent का मॉडल कर्नेल सोर्स AST (एब्स्ट्रैक्ट सिंटैक्स ट्री) का विश्लेषण करता है। यह "खतरनाक जोड़े" की पहचान करता है—ऐसे syscalls जो एक ही साझा संसाधन को संशोधित करते हैं (इस मामले में, पॉसिक्स_सीपीयूटाइमर) लेकिन अलग-अलग लॉकिंग पथों का अनुसरण करते हैं। इसने झंडा दिखाया। टाइमर हटाएँ और हैंडल_पोक्सिस_सीपीयू_टाइमर्स एक उच्च-संभाव्यता वाले टक्कर लक्ष्य के रूप में।
2. एआई के माध्यम से रेस विंडो का फैलाव
Penligent केवल syscalls को निष्पादित नहीं करता; यह उन्हें समन्वित करता है। दौड़ की खिड़की को चौड़ा करने की आवश्यकता को पहचानते हुए, एआई ने स्वचालित रूप से अनुमान लगाया कि ज़ॉम्बी से बाहर निकलें पिछली "Ref-Count" भेद्यता रिपोर्टों का विश्लेषण करके तकनीक। इसने एक प्रूफ़-ऑफ़-कॉन्सेप्ट तैयार किया जिसने प्रोग्रामेटिक रूप से CPU को रोक दिया (उपयोग करके शेड्यूल_यील्ड या व्यापक मेमोरी बैरियर) टकराव की गारंटी के लिए।
सुरक्षा इंजीनियर के लिए, इसका मतलब है कि पेनलिजेंट "संभावित बग्स" की रिपोर्टिंग से आगे बढ़कर डिलीवर करने तक जाता है। सत्यापित, हथियारबंद शोषण जो कोड की वास्तविक जोखिम प्रोफ़ाइल को प्रदर्शित करते हैं।
उपचार और ब्लू टीम का पता लगाना
यह सुधार, जिसे 2025 के अंत में लिनक्स कर्नेल में शामिल किया गया, केवल लॉक के बजाय एक लॉजिक जांच शामिल करता है।
समाधान:
run_posix_cpu_timers() में, कर्नेल अब स्पष्ट रूप से if (tsk->exit_state) की जांच करता है। यदि टास्क पहले से ही मृत या मरणासन्न है, तो यह तुरंत टाइमर प्रोसेसिंग को रद्द कर देता है। इससे प्रभावी रूप से "ज़ॉम्बी" चर समीकरण से बाहर हो जाता है।
खोज रणनीतियाँ (EDR/Syslog):
ब्लू टीमों को लिनक्स/एंड्रॉइड सर्वरों पर निम्नलिखित समझौते के संकेत (IoC) देखने चाहिए:
- उच्च-आवृत्ति टाइमर चर्न: प्रति सेकंड हजारों POSIX टाइमर तेजी से बनाने और हटाने की एक प्रक्रिया।
- ज़ॉम्बी बाढ़ें: एक असामान्य संचय
ज़ेडराज्य प्रक्रियाएँ जो जल्दी से उत्पन्न होती हैं और समाप्त नहीं की जातीं। - कर्नेल टेंट:
डीएमएसजीलॉग्स में "जनरल प्रोटेक्शन फाल्ट्स" या "स्लेब करप्शन" दिखानाकेमैलोक-192(या आपके मेहराब पर टाइमर के लिए विशिष्ट स्लैब का आकार)
निष्कर्ष
CVE-2025-38352 एक उत्सवी अनुस्मारक है कि लीगेसी कोड एक खतरनाक खदान है। POSIX टाइमर कोड दशकों पहले लिखा गया था, फिर भी इसमें एक छिपी हुई खामी थी जिसे हथियार बनाने के लिए 2025 की जटिल मेमोरी परिदृश्य की आवश्यकता थी।
कट्टर सुरक्षा इंजीनियर के लिए, सबक स्पष्ट है: भेद्यता अनुसंधान का भविष्य सरल बफ़र ओवरफ़्लो खोजने में नहीं है। यह कोड के चौथे आयाम को समझने के बारे में है—समयजब तक कर्नेल जटिल लॉकिंग तंत्र अपनाते रहेंगे, रेस कंडीशन्स शोषण के "क्रॉउन ज्वेल्स" बने रहेंगे।

