Sploitus

Exploit for oppo-pgem10-ghostlock

kitploit · 2026-09-05

Exploit Code

MARKDOWN90 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-THIASAP-OPPO-PGEM10-GHOSTLOCK
# OPPO Find X6 Pro GhostLock Проект адаптации

## Обзор

Данный проект посвящен адаптации уязвимости CVE-2026-43499 (GhostLock) на устройстве OPPO Find X6 Pro (PGEM10).

Основан на архитектуре оригинального эксплойта 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)  
Версия ПЗУ| 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  
  
## Сводка результатов проекта

### ✅ Выполнено

### ❌ Заблокировано

## Структура проекта

root@kitploit:~
    
    
    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/                     # Скрипты анализа цепочек вызовов
    

## Ключевые различия в конфигурации (PGEM10 vs Pixel 10)

root@kitploit:~
    
    
    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-битное)
    

## Первопричина блокировки: расширение стекового фрейма из-за PAC

root@kitploit:~
    
    
    Функция                 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
    Возможность перезаписи?   ✅ ДА             ❌ НЕТ (0xA70 > 0x620)
    

Анализ цепочек вызовов подтверждает: в ядре **0** цепочек глубиной ≥ 0x800 (2048Б). Максимальный одиночный фрейм: 0x1F0 (496Б).

## Справочные ресурсы

  * Оригинальный проект: https://github.com/NebuSec/CyberMeowfia
  * Адаптация для OPPO Find N2: https://github.com/pubglite55/oppo-ghostlock
  * Исследование NebuSec: https://nebusec.ai/research/ionstack-part-2/
  * Исходный код ядра: https://github.com/oppo-source/android_kernel_oppo_sm8550
  * Общий исходный код ядра: https://github.com/oppo-source/android_kernel_common_oppo_sm8550