피드로 돌아가기
Hacker NewsSecurity
원문 읽기
VPU 드라이버 MMIO 매핑 결함 통한 Pixel 10 Root 권한 획득
A 0-click exploit chain for the Pixel 10
AI 요약
Context
Pixel 9에서 검증된 Dolby 0-click 취약점을 Pixel 10으로 이식하려는 시도에서 시작함. Tensor G5 칩셋의 VPU 드라이버가 V4L2 표준 API를 따르지 않고 하드웨어 인터페이스를 유저스페이스에 직접 노출하는 설계적 결함을 보유함.
Technical Solution
- RET PAC 도입으로 인한 __stack_chk_fail 덮어쓰기 불가 문제를 초기화 시 1회만 호출되는 dap_cpdp_init 함수 대체로 해결
- VPU 드라이버의 vpu_mmap 핸들러가 VMA 크기에 대한 경계 검사 없이 remap_pfn_range를 호출하는 로직 파악
- mmap 시스템 콜 시 레지스터 영역보다 큰 사이즈를 지정하여 물리 메모리의 광범위한 영역을 유저랜드 가상 주소 공간에 매핑
- VPU 레지스터 영역과 커널 이미지 간의 고정된 물리 주소 오프셋을 활용하여 커널 .text 및 .data 영역에 직접 접근
- 커널 함수를 임의로 덮어쓰는 방식으로 Kernel Code Execution 및 Root 권한 획득 구조 설계
실천 포인트
1. mmap 핸들러 구현 시 요청된 VMA 크기가 실제 물리 장치 메모리 범위 내에 있는지 엄격히 검증했는가?
2. 하드웨어 레지스터 매핑 시 최소 권한 원칙에 따라 필요한 영역만 정밀하게 매핑하는가?
3. 커널 물리 주소의 예측 가능성을 낮추기 위한 KASLR 등의 보호 기법이 드라이버 레벨에서도 유효하게 작동하는가?