
DirtyFrag CVE-2026-43284 5.4-qgki 기기 대상 연구
날짜: 2026-10-07/08 기기: Redmi Note 11 Pro 5G (veux, 5.4.274-qgki) & POCO X5 5G (moonstone, 5.4.191-qgki) SoC: Snapdragon 695 (SM6375)
| CVE | 상태 | 비고 |
|---|---|---|
| CVE-2026-43284 (DirtyFrag) | ❌ 불가 | MSG_SPLICE_PAGES 필요 (커널 6.5+) |
| CVE-2026-24088 (Qualcomm fastboot) | ⚠️ 부트로더별 상이 | TheFliss: 자신의 기기에서 "unknown command" |
| CVE-2022-2602 (io_uring UAF) | ❌ 불가 | 커널이 register 경로 차단 (EFAULT/EINVAL) |
| CVE-2022-20421 (BadSpin) | ❌ 시도했으나 성공 없음 | 빌드는 정상, 레이스에서 승리하지 못하고 반복 |
| CVE-2023-20938 (binder UAF) | ✅ 취약 (양쪽 모두) | 아직 시도하지 않음 |
| CVE-2023-4622 (af_unix UAF) | ✅ 취약 (양쪽 모두) | 아직 시도하지 않음 |
| CVE-2026-43499 (GhostLock) | ❓ 취약 가능성 있음 | GhostLock 앱은 설계상 5.4에서 동작하지 않음 |
| KGSL CVE (5건) | ❓ 취약 가능성 있음 | 2024-38399는 분석 문서+PoC 존재 |
판정: 5.4에서는 실행 불가.
버그는 5.4에 존재하지만(코드는 4.11부터), 익스플로잇은 페이지 캐시 쓰기 프리미티브를 위한
MSG_SPLICE_PAGES UDP 지원을 필요로 한다. 이는 커널 6.5에서 도입되었다.
5.4에서 UDP로의 splice()는 일반 복사를 수행하며, 공유 페이지 첨부가 없다.
CVE-2026-43500 (RxRPC 변형) 역시 적용 불가 — RxRPC 코드는 6.8에서 도입되었다.
저장소: https://github.com/HirokiAkihiko/dirtyfrag-research
판정: 부트로더별 상이, 보편적이지 않음.
Qualcomm ABL의 버그: fastboot oem set-gpu-preemption이 인자를 정제하지 않아,
커널 cmdline에 androidboot.selinux=permissive를 주입할 수 있다.
테스트 결과 (TheFliss): FAILED (remote: 'unknown command') — 그의 부트로더는
해당 명령을 구현하지 않는다. 이 CVE는 특정 ABL 빌드에 의존한다.
판정: 이 기기들에서는 불가. 커널이 register 경로를 적극적으로 차단한다.
수행한 작업:
발견 사항:
CONFIG_IO_URING=y 확인됨io_uring_setup은 일반 플래그로 동작 (SQPOLL 차단됨 → CAP_SYS_ADMIN 필요)IORING_REGISTER_FILES → EFAULT (일관됨, 원시 SVC를 통해서도 동일)IORING_REGISTER_BUFFERS → EINVALUAF 프리미티브는 IORING_REGISTER_FILES의 성공을 필요로 한다. 이것이 없으면
익스플로잇 체인은 진행될 수 없다.
번들: ~/workspace/cve-2022-2602-bundle/ (소스, 바이너리, 진단 도구)
판정: 빌드 및 실행은 되지만 veux에서는 성공하지 못함.
수행한 작업:
mateusvdcastro/badspinexploit.c의 SPL 검사 제거 (find_dev_config())dev_config.h에 veux 기기 항목 추가 (모델 2201116SG, Android 13, 커널 5.4.274, SPL 2024-12)libbadspin.so (345K, ARM64)TEST_VULN=1로 LADB를 통해 기기에서 테스트테스트 결과: dev_config_init이 처음에 실패함 (SPL 월 불일치: 항목은
month=1, 기기는 2024-12). GitHub를 통해 수정. 수정 후 익스플로잇이 실행되어
취약점을 트리거하지만("Trigger use-after-free"), 레이스 컨디션에서 승리하지 못하고
무한히 반복된다.
저장소: https://github.com/HirokiAkihiko/badspin-veux (비공개)
bdc1c5fac982 및 4df153652cc4가 Xiaomi 소스에 없음4821df2ffe38이 없음; skb_peek_tail이 여전히 락 없이 동작current->pi_blocked_on = NULL 존재)버전 라벨은 오해를 불러일으킨다. veux-r-oss는 5.4.274로 표기되어 있지만, 있어야 할 stable 5.4.y 백포트가 누락되어 있다 (2023-06의 binder 수정, 2023-08의 af_unix 수정). 항상 버전 번호가 아닌 코드 수준에서 검증하라.
~/workspace/cve-2022-2602-bundle/~/workspace/cve-hunt/