Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
cve-2025-21479_iqooneo8 — CVE-2025-21479 (Adreno KGSL) के लिए iQOO Neo8 (SM8475) पर स्थानीय रूट एक्सप्लॉइट - भौतिक मेमोरी रीड/राइट, SELinux अक्षम करता है, रूट शेल लॉन्च करता है | Kitploit
उपकरण/GitHubGitHub/qingizi7/cve-2025-21479_iqooneo8
एंड्रॉइड सुरक्षाविशेषाधिकार वृद्धिशोषण फ्रेमवर्कशोषणरिवर्स इंजीनियरिंगमोबाइल सुरक्षाहार्डवेयर और IoT सुरक्षापेलोड डेवलपमेंटबाइनरी शोषण

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
GitHubqingizi7/cve-2025-21479_iqooneo8

cve-2025-21479_iqooneo8

CVE-2025-21479 (Adreno KGSL) के लिए iQOO Neo8 (SM8475) पर स्थानीय रूट एक्सप्लॉइट - भौतिक मेमोरी रीड/राइट, SELinux अक्षम करता है, रूट शेल लॉन्च करता है

रिपॉजिटरी देखें
324 दिन पहलेअभी तक समीक्षित नहीं

CVE-2025-21479 — Qualcomm Adreno GPU विशेषाधिकार वृद्धि शोषण (SM8475 / iQOO Neo8)

यह CVE-2025-21479 के लिए स्थानीय विशेषाधिकार वृद्धि प्रयोगात्मक कोड है, जो vivo V2301A (iQOO Neo8 / PD2301, Snapdragon 8+ Gen 1 / SM8475, Adreno A730, Android 14, GKI कर्नेल 5.10) पर स्थित Qualcomm Adreno GPU (KGSL) को लक्षित करता है।

सिद्धांत रूप में, शोषण KGSL के CP_SMMU_TABLE_UPDATE कमांड के माध्यम से GPU के SMMU को चलाता है, जिससे किसी भी भौतिक मेमोरी को पढ़ने/लिखने की क्षमता मिलती है, फिर SELinux बंद करता है, कर्नेल प्रतीकों का पता लगाता है और रूट शेल प्राप्त करता है—पूरी प्रक्रिया में फ्लैशिंग की आवश्यकता नहीं होती और न ही अनलॉक किए गए Bootloader पर निर्भरता होती है।

केवल उन डिवाइसों पर सुरक्षा अनुसंधान के लिए जो आपके स्वामित्व में हैं या जिनके लिए आपको अधिकृत किया गया है।


यह क्या करता है

  1. GPU भौतिक मेमोरी प्रिमिटिव। Adreno A730 (eureka_panther) माइक्रोकोड की एक्सेस जाँच (and $12, 0x3) में दोष है, जो Self-Draw-State (SDS) पैकेट को RingBuffer (RB) समझ लेता है। इसलिए उपयोगकर्ता-स्थान में नकली CP_SMMU_TABLE_UPDATE को SDS ब्लॉक में जमा करके GPU के TTBR0 को अधिलेखित किया जा सकता है, जिससे GPU पेज तालिका किसी भी भौतिक पृष्ठ की ओर इंगित हो जाती है—इसके बाद GPU किसी भी भौतिक मेमोरी को पढ़/लिख सकता है।
  2. स्थिरीकृत पढ़ना/लिखना। stabilize_rw के माध्यम से मैपिंग को 2 MB स्व-मैपिंग क्षेत्र में मजबूत किया जाता है, जो बड़ी मात्रा में तेज़ी से पढ़ने का समर्थन करता है (fast_pread_bytes आदि)।
  3. SELinux बंद करना। भौतिक मेमोरी में selinux_state.enforcing फ़ील्ड को शून्य कर दें। फिर निश्चित भौतिक आधार पते 0xA8000000 से कर्नेल इमेज डंप करें (डिफ़ॉल्ट सीमा 43 MB)— SM8475 में भौतिक KASLR नहीं है—और सीधे मूल डंप से kallsyms संरचना को पार्स करें (एंडियननेस स्वचालित रूप से पहचाना जाता है), इसलिए वर्चुअल KASLR भी प्रभावित नहीं करता।
  4. रूट पेलोड। AArch64 शेलकोड (prepare_kernel_cred(0) → commit_creds(), और seccomp बंद करना) से __do_sys_capset को पैच करें। fork किया गया चाइल्ड प्रोसेस capset() कॉल करता है → uid 0 बन जाता है → अधिलेखित कर्नेल कोड को पुनर्स्थापित करता है → चाइल्ड प्रोसेस u:r:shell:s0 डोमेन में आपके द्वारा निर्दिष्ट कमांड को फिर से निष्पादित करता है (डिफ़ॉल्ट sh)। कर्नेल कोड अंततः चलाने से पहले के समान बाइट-दर-बाइट समान होता है।

परीक्षण डिवाइस

पूर्ण डिवाइस जानकारी device_info.txt में देखें।

रिपॉजिटरी संरचना

root@kitploit:~
├── source/
│   ├── cheese.c            # 漏洞利用主程序(include 了下面两个文件)
│   ├── kallsyms_lookup.c   # 针对原始内核映像的 kallsyms 解析器
│   └── adrenaline.h        # KGSL ioctl / 命令定义(作者 hawkes)
├── exploit                 # 预编译 arm64 二进制(动态链接,minSdk 21,
│                           #  NDK r30-beta2)
├── device_info.txt         # 用于调参的目标设备信息
└── README.md

नोट: cheese.c #include kallsyms_lookup.c और adrenaline.h करता है, संकलन के समय तीनों फ़ाइलें एक ही निर्देशिका में होनी चाहिए।

संकलन

कोई भी अपेक्षाकृत नया Android NDK (r25+) काम करेगा, उदाहरण:

root@kitploit:~
# 静态链接(自包含、任意 API 等级可运行;体积较大)
aarch64-linux-android34-clang -o cheese source/cheese.c -static

# 动态链接(体积小,依赖设备自带的 libc;API 等级需匹配设备)
aarch64-linux-android34-clang -o exploit_dyn source/cheese.c
# 若要兼容 API 21+ 设备,请改用 aarch64-linux-android21-clang

उपयोग विधि

root@kitploit:~
adb push exploit /data/local/tmp/

adb shell
chmod +x /data/local/tmp/exploit
/data/local/tmp/exploit

विस्तृत ट्यूटोरियल के लिए यहाँ क्लिक करें (इसमें एक-क्लिक टूल है)

सफल होने पर आपको uid=0 वाला शेल मिलेगा, और इस सत्र में SELinux बंद कर दिया गया है। प्रक्रिया विशेषाधिकार वृद्धि पूरी करने के बाद argv[1..] को फिर से निष्पादित करती है (डिफ़ॉल्ट sh है)। हर बार चलाने पर एक काउंटडाउन ("pte wait 3 second") और 43 MB कर्नेल पढ़ने की प्रगति ("Read X / 43 MB") दिखाई देती है। विशेषाधिकार वृद्धि सफल, uid=0

पर्यावरण चर

ReSukiSU जेलब्रेक

root@kitploit:~
$(find /data/app -type f -name "libksud.so" | grep resukisu) late-load --kmi android12-5.10

अन्य डिवाइसों पर पोर्ट करना

डिवाइस से संबंधित स्थिरांक source/cheese.c के शीर्ष पर स्थित हैं:

  • KERNEL_PHYS_BASE — कर्नेल भौतिक आधार पता (डिफ़ॉल्ट 0xA8000000, SM8475)
  • IDMAP_PG_DIR_OFFSET — idmap_pg_dir ऑफसेट (डिफ़ॉल्ट 0x245a000)
  • selinux_state_offset — selinux_state का पता लगाने के लिए ऑफसेट (डिफ़ॉल्ट 0x729030, वास्तविक भौतिक पता = idmap_pg_dir भौतिक पता + यह ऑफसेट)
  • gPhyAddrs[] — क्रमिक रूप से आज़माए जाने वाले उम्मीदवार भौतिक आधार पते
  • DEFAULT_KERNEL_SIZE_MB — कर्नेल पढ़ने के लिए फॉलबैक मान / सीमा

पूर्वापेक्षाएँ: Adreno A730/A7xx श्रृंखला GPU (प्रभावित फर्मवेयर), भौतिक डंप में पार्स करने योग्य kallsyms वाला कर्नेल, और कोई भौतिक KASLR नहीं।

सामान्य प्रश्न

  • can't get GPU r/w — GPU प्रारंभ विफल; पहले प्रतीक्षा करें, फिर भी न हो तो CHEESE_ATTEMPT=1..n आज़माएँ या मैन्युअल रूप से CHEESE_PHYADDR निर्दिष्ट करें; एकल प्रयास को डीबग करते समय CHEESE_NO_RETRY=1 जोड़ें।
  • kallsyms पार्सिंग विफल — पहले CHEESE_READ_FULL_KERNEL=1 से पूरी इमेज पढ़ें (साथ में CHEESE_KALLSYMS_MAX_MB से सीमा बढ़ाएँ), फिर CHEESE_FORCE_MANUAL_PATCHFINDER=1 पर विचार करें।
  • यह टूल कुछ भी फ्लैश या स्थायी नहीं करता: कर्नेल कोड और पेज टेबल समाप्त होने से पहले बहाल कर दिए जाते हैं, रिबूट के बाद डिवाइस चलाने से पहले जैसा बिल्कुल वैसा ही होता है।

आभार

  • @zhuowei — CVE-2025-21479 के शोधकर्ता, और इस टूल का आधार बनने वाले ओपन-सोर्स cheese शोषण के लेखक
  • cheese / cheese-cake ओपन-सोर्स वंश — SDS/TTBR0 तकनीक, कर्नेल डंप-आधारित kallsyms पार्सिंग
  • hawkes — 2020 का adrenaline.h KGSL हेडर फ़ाइल, जो ioctl इंटरफ़ेस परिभाषाएँ प्रदान करती है
  • 酷安@renil — इस भेद्यता को iQOO Neo8 पर दोहराने पर शोध

zhuowei/cheese के आधार पर संशोधित (मूल रिपॉजिटरी में कोई लाइसेंस नहीं है)। पूर्ण सिद्धांत के लिए भेद्यता बुलेटिन देखें।

  • 酷安@TNTHe — मेरा 酷安 खाता

अस्वीकरण

यह रिपॉजिटरी केवल शैक्षिक और सुरक्षा अनुसंधान के लिए है। कृपया इसका उपयोग केवल उन डिवाइसों पर करें जो आपके स्वामित्व में हैं या जिनके लिए आप अधिकृत हैं। लेखक किसी भी दुरुपयोग के लिए उत्तरदायी नहीं है। इस टूल के उपयोग से वारंटी समाप्त हो सकती है या संबंधित सेवा की शर्तों का उल्लंघन हो सकता है।

टूल डाउनलोड करें
मॉडलvivo V2301A (iQOO Neo8, कोडनेम PD2301, मदरबोर्ड taro)
SoCSM8475 (Snapdragon 8+ Gen 1) + Adreno 730
Android14 (UP1A.231005.007, SDK 34, qssi-user)
कर्नेल5.10.198-gki-gfb2f5774872c
SELinuxEnforcing (रनटाइम पर इस टूल द्वारा बंद किया गया)
चरकार्य
CHEESE_PHYADDR=<phys>कर्नेल भौतिक आधार पता अनिवार्य रूप से निर्दिष्ट करें (अंतर्निहित gPhyAddrs प्रोब तालिका को छोड़ें)।
CHEESE_ATTEMPT=<n>gPhyAddrs[0] के बजाय gPhyAddrs[n] का उपयोग करें; GPU प्रारंभ विफल होने पर maybe_retry स्वचालित रूप से वृद्धि करके पुनः प्रयास करेगा।
CHEESE_SWAPPER_PG_DIR_OFF=<off>swapper_pg_dir स्कैन छोड़ें और सीधे इस निरपेक्ष ऑफसेट का उपयोग करें।
CHEESE_READ_FULL_KERNEL=1पूर्ण कर्नेल इमेज पढ़ें (डिफ़ॉल्ट पढ़ने की सीमा DEFAULT_KERNEL_SIZE_MB = 43 MB है)।
CHEESE_KALLSYMS_MAX_MB=<MB>kallsyms पढ़ने की अधिकतम सीमा को ओवरराइड करता है।
CHEESE_FORCE_MANUAL_PATCHFINDER=1मैन्युअल patchfinder फॉलबैक का उपयोग करने के लिए बाध्य करें (init_cred, prepare_kernel_cred)।
CHEESE_SKIP_GPU=1GPU पढ़ने/लिखने के चरण को छोड़ें (केवल डीबगिंग के लिए)।
CHEESE_NO_RETRY=1विफलता के बाद सीधे बाहर निकलें, कोई पुनः प्रयास नहीं।