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를 통해 해제된 메모리에 접근하거나 데이터를 수정하려고 하면, 이미 다른 용도로 사용 중인 메모리에 영향을 미침

취약점 공격 진행 과정

  1. 메모리 할당 및 해제
    • 프로그램이 동적으로 메모리를 할당하고 사용한 후, 해당 메모리를 해제
    • 그러나 해제된 메모리를 가리키는 포인터가 여전히 존재하여, 이를 통해 해제된 메모리에 접근 가능
  2. 해제된 메모리의 재사용
    • 운영체제는 효율적인 메모리 관리를 위해 해제된 메모리를 재사용
    • 따라서, 해제된 메모리 영역이 다른 데이터나 객체로 덮어씌워질 수 있음
  3. 공격자의 악용
    • 공격자는 해제된 메모리 영역에 악의적인 데이터를 삽입하거나, 해당 메모리의 내용을 조작
    • 이로 인해 프로그램의 동작을 변경하거나, 권한 상승 등의 보안 문제가 발생

두 줄 요약

  • 공격자는 사용자 핸드폰에서 커널 모드 권한을 휙득하고, 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