
Xiaomi 15 dada OS4.0.0.22.XOCCNXM용 검증된 CVE-2026-98260 Android 포트
dada) Android 17 이식OS4.0.0.22.XOCCNXM 및 해당 정확한 커널 빌드를 대상으로 한 임시 로컬 권한 상승 PoC입니다. 실제 기기에서 일반 ADB shell로부터 CVE-2026-98260을 재현하여, 동일한 부팅 주기 내에서 SELinux Permissive와 UID/GID 0을 획득했습니다.
| 항목 | 검증된 값 |
|---|---|
| 기기 | Xiaomi 15, 코드명 dada |
| 펌웨어 | OS4.0.0.22.XOCCNXM, Android 17 |
| 지문 | Xiaomi/dada/dada:17/CP2A.260605.016/OS4.0.0.22.XOCCNXM:user/release-keys |
| 커널 | 6.6.118-android15-8-gb9cc6ec16bc8-abogki536571621-4k |
| 시작점 | 권한이 부여된 일반 ADB shell, UID 2000, SELinux Enforcing |
| 결과 | 새 ADB 세션이 임시 클라이언트를 통해 UID/GID 0, SELinux Permissive 획득 |
이 결과에는 완전한 Linux capabilities가 포함되지 않습니다: 임시 root shell의 CapEff=0입니다. 소스 코드는 통제된 8바이트 제로화 쓰기를 사용하여 UID/GID와 SELinux 상태를 변경하며, capability 비트를 1로 설정하지 않습니다. 검증 범위는 성공 조건과 제한 사항을 명확히 설명합니다.
Windows에 Android Platform Tools, Android NDK r29 (29.0.14206865) 및 r28.2 (28.2.13676358)를 설치합니다. 주요 페이로드는 r29/API 35로 정적 빌드되며, 범용 order1-churn 도우미 프로그램은 r28.2/API 35를 사용합니다. NDK가 다른 디렉터리에 있는 경우 -Ndk29, -Ndk28을 전달할 수 있습니다.
powershell -NoProfile -ExecutionPolicy Bypass -File .\build.ps1 -VerifyReference
-VerifyReference는 네 개의 재빌드 산출물을 bin/에 있는 릴리스 바이너리와 SHA-256으로 하나씩 비교합니다. 전체 해시는 릴리스 버전을 고정하며, 빌드 과정은 휴대폰에 연결하지 않습니다.
정확한 대상 기기를 연결하고 권한을 부여한 뒤 adb를 PATH에 추가합니다:
powershell -NoProfile -ExecutionPolicy Bypass -File .\run_98260.ps1
ADB 기기가 여러 대인 경우 -Serial <기기 시리얼 번호>를 전달합니다. 스크립트는 기기 코드명, 전체 지문, 커널, 네 개의 로컬 및 기기 측 바이너리 해시와 boot ID를 확인한 후 SELinux, UID/GID 단계를 각각 실행합니다. 새 ADB 세션에서 UID 0과 Permissive가 확인된 경우에만 성공을 보고합니다. 기본적으로 각 단계는 최대 세 번 시도하며, PARKED를 만나면 중단하고 해당 위험한 zombie를 수동으로 회수할 수 없습니다. 원시 출력은 Git에서 무시되는 로컬 logs/에만 저장됩니다.
성공 후 현재 부팅 주기에서 UID 0 명령을 실행합니다:
adb shell /data/local/tmp/dada98260-su -c id
익스플로잇은 확률적 페이지 회수에 의존하므로 매번 성공을 보장하지 않습니다. 재부팅 후에는 메모리 수정과 임시 서비스가 모두 사라집니다. 이 저장소는 어떤 파티션도 플래시하지 않으며, 다른 펌웨어나 동일한 버전 문자열을 가졌지만 커널 이미지가 다른 경우에 대한 지원을 주장하지 않습니다.
저장소에는 CVE-2026-98260의 소스 코드, 재빌드 가능한 기기 측 프로그램 및 정리된 성공 사실만 포함되어 있습니다. 원본 boot, 파티션 이미지, bugreport, 기기 시리얼 번호, 런타임 주소, 원시 로그 및 실패 라운드는 업로드되지 않았습니다. 이 프로젝트의 독자적 코드와 문서는 MIT 라이선스를 따르며, 사전 빌드된 바이너리와 관련된 Android NDK 제3자 라이선스는 고지를 참조하십시오.