
CVE-2026-0013 Android EoP PoC - सुरक्षा अनुसंधान हेतु संकलित आर्टिफैक्ट्स (inforcqb/cve-2026-0013-exploit का व्युत्पन्न)
Android DocumentsUI कन्फ्यूज़्ड डेप्युटी भेद्यता (Confused Deputy) - सुरक्षा अनुसंधान सत्यापन परियोजना
यह रिपॉज़िटरी एक व्युत्पन्न संकलन रिपॉज़िटरी है, जो मूल मुख्य रिपॉज़िटरी के साथ संबद्ध है।
| भूमिका | रिपॉज़िटरी | विवरण |
|---|---|---|
| मुख्य रिपॉज़िटरी | inforcqb/cve-2026-0013-exploit | मूल भेद्यता अनुसंधान |
| यह रिपॉज़िटरी | XiaoBaiLovesStirring/cve-2026-0013-poc | क्लाउड संकलन आर्टिफ़ैक्ट वितरण |
इस रिपॉज़िटरी तक पहुँचने से पहले, कृपया SECURITY_PROTOCOL.md को पढ़ना और समझना सुनिश्चित करें।
मुख्य बिंदु:
GitHub Pages: https://XiaoBaiLovesStirring.github.io/cve-2026-0013-poc/
संकलन ट्रिगर करें: https://github.com/XiaoBaiLovesStirring/cve-2026-0013-poc/actions
आर्टिफ़ैक्ट प्राप्त करें: git clone --branch artifacts https://github.com/XiaoBaiLovesStirring/cve-2026-0013-poc.git
परिवर्तन: DocumentsUI द्वारा प्रारंभ किए गए targetIntent को नए स्व-निर्मित घटक IdTestActivity की ओर इंगित किया गया। यह घटक id निष्पादित करता है और चलने की पहचान तथा परिणाम को logcat और नोटिफ़िकेशन बार में लिखता है, जिससे दो महत्वपूर्ण तथ्यों का वास्तविक परीक्षण किया जा सके:
Intent.EXTRA_INTENT का उपभोग करता है और लक्ष्य घटक को उसकी ओर से प्रारंभ करता हैतंत्र स्पष्टीकरण (महत्वपूर्ण): Android अलगाव मॉडल के अनुसार, किसी तृतीय-पक्ष ऐप का कोई भी घटक, चाहे उसे कोई भी प्रारंभ करे, केवल उसी प्रोसेस/UID में चलेगा जिसे उसने स्वयं घोषित किया है। केवल DocumentsUI द्वारा प्रारंभ कराने से, IdTestActivity अभी भी com.example.cve20260013exploit के अपने UID (जैसे u0_a702/10702) के साथ चलेगा, और स्वतः DocumentsUI के uid=10054 में परिवर्तित नहीं होगा। पूरे APK को 10054 प्राप्त कराने के लिए sharedUserId="android.uid.documentsui" (जिसके लिए system हस्ताक्षर आवश्यक है, तृतीय पक्ष के लिए उपलब्ध नहीं) या root वातावरण की आवश्यकता होती है। v1.0.4 का मूल्य यह सत्यापित करना है कि क्या EXTRA_INTENT का उपभोग होता है तथा प्रारंभ कराने वाले की वास्तविक पहचान क्या है।
समस्या: OPPO/ColorOS पर, DocumentsUI का PickActivity अब कॉल करने वाले द्वारा भेजे गए Intent.EXTRA_INTENT का उपभोग नहीं करता। व्यावहारिक परीक्षण में mCallingUid अभी भी कॉल करने वाले u0_a702 का ही था, और PickActivity केवल अपना चयन इंटरफ़ेस प्रदर्शित करने के बाद रुक गया; DocumentsUI की पहचान (uid=10054) के साथ कोई भी लक्ष्य क्रिया प्रारंभ नहीं हुई, और मूल कन्फ्यूज़्ड डेप्युटी श्रृंखला वास्तव में टूट चुकी थी।
समाधान (ट्रिगर श्रृंखला पुनः डिज़ाइन):
ACTION_OPEN_DOCUMENT / ACTION_GET_CONTENT + CATEGORY_OPENABLE + */*) के अंतर्गत DocumentsUI को हल करने दिया गयाpicker.PickActivity और मूल प्रवेश बिंदु PickActivity के लिए स्पष्ट नामकरण फ़ॉलबैक बनाए रखा गया, ताकि प्रवेश बिंदु न मिलने पर क्रैश न होcontent:// अस्थायी अनुदान URI से अनुदान होस्ट की पहचान का पता लगाया गया (probeUriGrant), ताकि अनुदान देने वाले के दृष्टिकोण से कन्फ्यूज़्ड डेप्युटी की वैधता सत्यापित की जा सकेतंत्र स्पष्टीकरण: एप्लिकेशन स्वयं DocumentsUI प्रोसेस से कोई भी कमांड निष्पादित नहीं करवा सकता; कन्फ्यूज़्ड डेप्युटी की "विशेषाधिकार वृद्धि" इस बात में निहित है कि उसे आपकी ओर से उन अधिकृत संसाधनों को धारण/अग्रेषित करने दिया जाए जो केवल उसके अपने uid से ही प्राप्त हो सकते हैं। इसलिए v1.0.3 में यह सत्यापित करने के लिए परिवर्तन किया गया कि "DocumentsUI द्वारा प्रदत्त URI अनुमति किसे मिली", न कि एप्लिकेशन के अपने प्रोसेस में id निष्पादित करना।
संकलन सुधार रिकॉर्ड: पहला बिल्ड विफल हुआ, क्योंकि getPackageManager().resolveActivity() का रिटर्न प्रकार ResolveInfo था न कि ComponentName, और त्रुटि error: incompatible types: ResolveInfo cannot be converted to ComponentName दिखाई दी। सुधार में ResolveInfo.activityInfo से packageName/name निकालकर ComponentName बनाया गया और फिर बिल्ड सफल रहा।
परिवर्तन: अवधारणा सत्यापन की क्रिया "Termux प्रारंभ करना" से बदलकर "कन्फ्यूज़्ड डेप्युटी श्रृंखला ट्रिगर करने के बाद id कमांड निष्पादित करना और परिणाम को सिस्टम नोटिफ़िकेशन बार में प्रदर्शित करना" कर दी गई।
id कमांड निष्पादित की जाती है (sh -c id, id, /system/bin/id, /system/xbin/id कई पथ आज़माए जाते हैं)uid/gid/groups आदि निष्पादन परिणाम नोटिफ़िकेशन बार में प्रदर्शित किए जाते हैंpicker.PickActivity → मूल .PickActivity)POST_NOTIFICATIONS अनुमति जोड़ी गईसमस्या: कई निर्माताओं (जैसे OPPO) ने DocumentsUI के क्लास पथ को संशोधित किया है; मूल प्रवेश बिंदु com.android.documentsui.PickActivity को com.android.documentsui.picker.PickActivity में स्थानांतरित कर दिया गया है, जिसके कारण पुराने संकलन आर्टिफ़ैक्ट लक्ष्य डिवाइस पर शोषण प्रवेश बिंदु का पता नहीं लगा पाते।
समाधान:
com.android.documentsui.picker.PickActivity में अद्यतन किया गया.PickActivity पर फ़ॉलबैक किया जाता हैसंकलन विफलता की समस्या निवारण मार्गदर्शिका (महत्वपूर्ण):
dumpsys package com.android.documentsui या Activity Resolver Table के माध्यम से निर्माता द्वारा संशोधित वास्तविक प्रवेश बिंदु क्लास नाम की पुष्टि करें, फिर ExploitActivity.java में setClassName पैरामीटर संशोधित करें और पुनः संकलन ट्रिगर करने के लिए पुश करेंCVE-2026-0013 | HIGH (CVSS 8.4) | CWE-441 | Android 14-16 | DocumentsUI PickActivity
पैच अधिसूचना: Android Security Bulletin 2026-03-01