CVE-2024-44068 (IDS Rule 제작 불가)
취약점 정의
- 삼성 엑시노스 프로세서의 m2m 스케일러 드라이버에서 발생
- ‘Use-After-Free’는 메모리 해제 후 해당 메모리를 재사용할 때 발생하는 취약점
- 공격자가 이를 악용하여 시스템 권한을 상승
영향받는 제품 및 버전
- Exynos 9820
- Exynos 9825
- Exynos 980
- Exynos 990
- Exynos 850
- Exynos W920
취약점 발생 원인
- 취약점은 sysmmu_map_pte 함수 내에서 발생
- 이 함수는 페이지 테이블 항목(PTE)을 설정하는 역할
- PFNMAP 플래그가 설정된 경우 페이지 참조 카운트를 증가시키지 않는 문제가 있음
if (!pfnmap)
get_page(pte_page(*pte));
else
mk_Iv2ent_pfnmap(ent);
- PFNMAP 플래그가 설정된 경우, get_page 함수를 호출하지 않아 페이지의 참조 카운트가 증가하지 않음
- 이로 인해 페이지가 해제된 후에도 페이지에 접근 가능하게 되어 ‘Use-After-Free’ 취약점이 발생.
[추가 설명] : PFNMAP 플래그
- 만약 특정 메모리 블록에 대한 참조 카운트가 증가되지 않는다면, 실제로는 해당 메모리를 사용하는 포인터가 존재하더라도 시스템은 이를 인식하지 못함.
- 이로 인해 참조 카운트가 0으로 유지되어, 시스템은 해당 메모리를 사용 중이라고 판단하지 않고 해제할 수 있음.
- 그러나 포인터는 여전히 해제된 메모리 블록을 가리키고 있으므로, 이후 이 포인터를 통해 메모리에 접근하면 ‘Use-After-Free’ 와 같은 심각한 오류 보안 취약점이 발생
[추가 설명] : Dangling Pointer 발생
- 포인터는 여전히 해제된 메모리 블록의 주소를 가리키고 있습니다. 이러한 포인터를 Dangling Pointer 라고 한다.
- 해제된 메모리에 접근 (Use-After-Free): Dangling Pointer를 통해 해제된 메모리에 접근하거나 데이터를 수정하려고 하면, 이미 다른 용도로 사용 중인 메모리에 영향을 미침
취약점 공격 진행 과정
- 메모리 할당 및 해제
- 프로그램이 동적으로 메모리를 할당하고 사용한 후, 해당 메모리를 해제
- 그러나 해제된 메모리를 가리키는 포인터가 여전히 존재하여, 이를 통해 해제된 메모리에 접근 가능
- 해제된 메모리의 재사용
- 운영체제는 효율적인 메모리 관리를 위해 해제된 메모리를 재사용
- 따라서, 해제된 메모리 영역이 다른 데이터나 객체로 덮어씌워질 수 있음
- 공격자의 악용
- 공격자는 해제된 메모리 영역에 악의적인 데이터를 삽입하거나, 해당 메모리의 내용을 조작
- 이로 인해 프로그램의 동작을 변경하거나, 권한 상승 등의 보안 문제가 발생
두 줄 요약
- 공격자는 사용자 핸드폰에서 커널 모드 권한을 휙득하고, PFNMAP 플래그를 설정하여 악성 코드를 해당 메모리 영역에 삽입하거나 실행
- 따라서 이 취약점은 시스템 내 메모리 관리 문제에서 발생하기 때문에 네트워크 기반 IDS로 탐지하기 어려움.
link : https://googleprojectzero.github.io/0days-in-the-wild/0day-RCAs/2024/CVE-2024-44068.html link : https://nvd.nist.gov/vuln/detail/CVE-2024-44068