
iOS 15 및 macOS 12용 ANE 커널 읽기/쓰기 익스플로잇
WeightBufs는 Neural Engine을 지원하는 모든 Apple 기기를 위한 커널 읽기/쓰기 익스플로잇입니다.
버그 및 익스플로잇: @simo36, 취약점 및 익스플로잇 기법에 대한 자세한 내용은 POC 발표 슬라이드에서 확인할 수 있습니다.
이 익스플로잇은 하드코딩된 주소나 오프셋에 의존하지 않으며, macOS 12 ~ 12.4 및 *OS 15 ~ 15.5에서 AS IS 그대로 작동해야 합니다.
커널 취약점은 모든 iOS 15 버전(16.0까지)에 영향을 미치지만, 샌드박스 탈출은 iOS 15.6에서 수정되었습니다. 결과적으로 익스플로잇 체인을 깨고 iOS 15.6/15.7에서 다시 작동시키려면 또 다른 샌드박스 탈출이 필요합니다. iOS 16.1까지 작동하는 또 다른 샌드박스 탈출을 보유하고 있지만, 커널 익스플로잇 기법이 iOS 15.6+에서 여전히 사용 가능한지는 확실하지 않습니다.
이 익스플로잇은 제가 독립적으로 발견하여 Apple에 보고한 4가지 취약점을 연쇄적으로 사용합니다:
CVE-2022-32845 : model.hwx에 대한 aned 서명 검사 우회.CVE-2022-32948 : 배열 인덱스 검증 부재로 인한 DeCxt::FileIndexToWeight() OOB 읽기.CVE-2022-42805 : 정수 오버플로 문제로 인한 ZinComputeProgramUpdateMutables() 잠재적 임의 읽기.CVE-2022-32899 : 정수 오버플로 문제로 인한 DeCxt::RasterizeScaleBiasData() 버퍼 언더플로.익스플로잇이 실패할 수 있는 상황은 다음과 같습니다:
MUTK보다 높은 경우, 그러나 익스플로잇은 실패를 조기에 감지하여 기기 충돌을 방지합니다. 익스플로잇을 다시 실행하면 충분하며 두 번째 시도에서 성공해야 합니다.DEBUG_EXPLOIT_STAGE_2_KERN_PANIC 및 DEBUG_EXPLOIT_STAGE_3_KERN_PANIC을 반드시 읽으십시오.WeightBufs에는 Elias Limneos가 classdump-dyld 1.0을 통해 생성한 AppleNeuralEngine 프레임워크 헤더 파일이 포함되어 있습니다.
WeightBufs는 MIT 라이선스로 배포됩니다.