Kant's IT/Vulnerability

Android Zygote 프로세스 주입 취약점(CVE-2024-31317) 통한 시스템 권한 상승 위협

Kant Jo 2025. 4. 13. 21:35

Android Zygote Injection Flaw Lets Attackers Execute Code & Gain Elevated Privileges

 

Android Zygote Injection Flaw Lets Attackers Execute Code & Gain Elevated Privileges

A significant vulnerability in the Android operating system, identified as CVE-2024-31317, has been discovered, allowing attackers.

gbhackers.com

 

  • 개요
    • Android 11 이하 버전에서 Zygote 프로세스를 악용해 임의 코드 실행 및 시스템 권한 상승이 가능한 심각한 취약점이 발견됨
    • 해당 취약점은 CVE-2024-31317로 등록되었으며, 공격자가 ADB(Android Debug Bridge) Shell을 이용해 시스템 전반을 제어할 수 있음
  • Zygote 프로세스와 취약점 구조
    • Zygote는 Android 시스템의 핵심 컴포넌트로, 앱 및 시스템 프로세스 생성의 시작점
    • 시스템 권한으로 실행되므로, 공격자가 Zygote를 제어할 경우 전체 시스템에 접근 가능
    • 문제는 System Server의 hidden_api_blacklist_exemptions 처리 방식에 존재
      • 해당 설정 값이 Zygote에 전달될 때 개행문자(\n)가 적절히 이스케이프되지 않아 명령어 주입이 가능
      • 이로 인해 공격자가 악성 명령어를 삽입해 Zygote 내에서 실행 가능
  • 공격 시나리오 및 PoC
    • 공격자는 ADB Shell을 통해 WRITE_SECURE_SETTINGS 권한을 이용해 설정 값을 수정
    • hidden_api_blacklist_exemptions에 악성 페이로드 삽입 → Zygote가 이를 해석 및 실행
      • 예: 시스템 권한으로 새 쉘을 실행하거나, 루트 셸 지속 실행
    • 공격 성공 시
      • 시스템 사용자 권한 획득
      • 디바이스 영속적 제어 가능
      • 부적절한 정리 시 부팅 루프(bootloop) 유발 위험
  • 영향 및 보안 권고
    • 영향 대상: Android 11 이하의 모든 디바이스
    • 위험 수준: CVSS 9.8 수준의 치명적 위협
    • 대응 조치
      • 공격 후 adb shell settings delete global hidden_api_blacklist_exemptions 명령으로 설정 초기화
      • 이후 디바이스 재부팅 시 악성 페이로드 제거 가능
    • 다만, 근본적으로는 Google의 보안 패치 적용 및 배포가 필요
  • 결론
    • Android 핵심 구조인 Zygote를 악용한 이 취약점은 루트킷 및 영속적 공격의 통로로 악용될 수 있어 매우 치명적
    • 보안 관리자 및 기업 MDM 담당자는 Android 보안 정책 강화 및 업데이트 관리를 철저히 수행해야 함
    • 사용자 단에서는 ADB 디버깅 비활성화, 루팅 기기 사용 자제 등이 필요