
OPPO Find X6 Pro GhostLock (CVE-2026-43499) शोषण अनुकूलन
यह परियोजना OPPO Find X6 Pro (PGEM10) पर CVE-2026-43499 (GhostLock) भेद्यता के अनुकूलन अनुसंधान के लिए है।
NebuSec CyberMeowfia मूल शोषण वास्तुकला पर आधारित, oppo-ghostlock अनुकूलन दृष्टिकोण का संदर्भ लेते हुए।
| मद | मान |
|---|---|
| उपकरण | OPPO Find X6 Pro (PGEM10) |
| चिपसेट | Snapdragon 8 Gen 2 (SM8550) |
| कर्नेल | Linux 5.15.149-android13 #1 SMP PREEMPT |
| संकलन तिथि | Thu Feb 13 2025 |
| Android | 15 (ColorOS 15.0) |
| ROM संस्करण | PGEM10_15.0.0.600(CN01) |
| PAC | CONFIG_ARM64_PTR_AUTH_KERNEL=y |
| BTI | CONFIG_ARM64_BTI_KERNEL=y |
| KASLR | CONFIG_RANDOMIZE_BASE=y |
| VA_BITS | 39 |
| VA ऑफसेट | P0_PAGE_OFFSET = 0xffffff8000000000 |
oppo-pgem10-ghostlock/
├── README.md # यह फ़ाइल
├── 问题描述.md # विस्तृत समस्या विश्लेषण
├── docs/
│ ├── architecture.md # आर्किटेक्चर डिज़ाइन और कॉल चेन
│ └── adaptation-guide.md # PAC कर्नेल अनुकूलन गाइड
├── reports/
│ ├── offsets.md # IDA ऑफसेट सत्यापन रिपोर्ट
│ ├── kaslr.md # KASLR विश्लेषण रिपोर्ट
│ └── summary.md # अंतिम सारांश
├── src/
│ ├── kaslr_perf.h # Perf KASLR पुन: प्रयोज्य मॉड्यूल
│ └── kaslr_perf.c # Perf KASLR कार्यान्वयन
└── analysis/
└── chains/ # कॉल चेन विश्लेषण स्क्रिप्ट
CONFIG_ARM64_PTR_AUTH_KERNEL=y # ← मुख्य अंतर: PAC सीधे फ्रेम सूजन का कारण बनता है
CONFIG_ARM64_BTI_KERNEL=y # BTI आगे ओवरहेड बढ़ाता है
CONFIG_SHADOW_CALL_STACK=y # SCS स्टैक फ्रेम बढ़ाता है
CONFIG_VMAP_STACK=y # स्टैक पुनर्मैपेबल
CONFIG_KASAN_HW_TAGS=y # संकलन सक्षम
CONFIG_ARM64_VA_BITS=39 # 39-बिट VA (48-बिट नहीं)
फ़ंक्शन Pixel 10 (बिना PAC) PGEM10 (PAC के साथ)
__arm64_sys_futex 0x90 0x4C0
do_futex 0x70 0x420
futex_wait_requeue_pi 0x1A0 0x1B0
─────────────────────────────────────────────────
futex चेन कुल गहराई 0x300 0xA70 ← 3.5 गुना
pselect स्टैक गहराई 0x620 0x620
ओवरराइट संभव? ✅ YES ❌ NO (0xA70 > 0x620)
कॉल चेन विश्लेषण पुष्टि करता है: कर्नेल में 0 कॉल चेन गहराई ≥ 0x800 (2048B) है।
अधिकतम एकल फ्रेम: 0x1F0 (496B)।
| मॉड्यूल | स्थिति | विवरण |
|---|
| Perf KASLR bypass | ✅ | मुख्य सफलता — perf_event_open + callchain सैंपलिंग के माध्यम से, <1s में वर्तमान KASLR स्लाइड प्राप्त करें |
| MM_STRUCT_SZ सुधार | ✅ | 0x500 से 0x400 (1024B) में सुधार, KernelSnitch तुरंत सफल |
| IDA ऑफसेट पूर्ण सत्यापन | ✅ | सभी महत्वपूर्ण प्रतीक/संरचना/फ़ंक्शन IDA क्रॉस-सत्यापन द्वारा सत्यापित |
| FUTEX_CMP_REQUEUE_PI | ✅ | GhostLock UAF सफलतापूर्वक ट्रिगर |
| ashmem सत्यापन | ✅ | C ashmem उपलब्ध, टाइप कन्फ्यूजन पथ सैद्धांतिक रूप से संभव |
| कॉल चेन विश्लेषण | ✅ | पुष्टि की गई कि कर्नेल में कोई कॉल चेन गहराई ≥ 0x800 नहीं है |
| कर्नेल कॉन्फ़िगरेशन स्कैन | ✅ | पूर्ण आक्रमण सतह मूल्यांकन |
| मॉड्यूल | स्थिति | मूल कारण |
|---|
| SLIDE स्टैक ओवरराइट | ❌ | PAC के कारण futex चेन स्टैक फ्रेम 0xA70 तक बढ़ गया, pselect केवल 0x620 |
| fops ओवरराइट | ❌ | SLIDE आवश्यक, PAC द्वारा अवरुद्ध |
| type confusion | ❌ | fops ओवरराइट पर निर्भर |
| Pipe physrw | ❌ | टाइप कन्फ्यूजन पर निर्भर |
| रूट | ❌ | उपरोक्त श्रृंखला पर निर्भर |