🇰🇷 한글 설명
Qualcomm 제품의 msm_compr_ioctl_shared 함수에서 ddp->params_length 변수가 동기화 없이 여러 스레드에서 접근되어 race condition이 발생합니다. 공격자가 이를 악용하여 큰 값으로 변수를 설정하면 버퍼 오버플로우가 발생할 수 있습니다.
💡 쉬운 설명
Qualcomm 칩셋의 오디오 처리 기능에서 두 개 이상의 프로그램이 동시에 데이터를 수정할 때 충돌이 발생합니다. 공격자가 이를 이용하여 메모리를 초과 쓰기할 수 있습니다.
🇺🇸 원문 (English)
In all Qualcomm products with Android releases from CAF using the Linux kernel, in function msm_compr_ioctl_shared, variable "ddp->params_length" could be accessed and modified by multiple threads, while it is not protected with locks. If one thread is running, while another thread is setting data, race conditions will happen. If "ddp->params_length" is set to a big number, a buffer overflow will occur.
📍 영향받는 시스템
Qualcomm CAF(Code Aurora Forum) 기반 Android 커널을 사용하는 모든 Qualcomm 제품 (Snapdragon SOC 탑재 기기)
⚔️ 공격 벡터
로컬 권한 필요, 악의적인 앱이 ioctl() 호출을 통해 race condition을 트리거하여 버퍼 오버플로우 실행
🛡️ 대응 방법
Qualcomm 보안 패치 또는 안드로이드 업데이트 설치 (2017년 8월 이후 보안 패치 레벨)
🔧 검증 코드
2017년 8월 이후 보안 패치가 설치되었으면 정상, 그 이전이거나 출력이 없으면 취약함
getprop ro.build.version.security_patch 2>/dev/null | grep -E '(2017-08|2017-09|201[8-9]|202[0-9])'