[하루한줄] Persistent arbitrary code execution in Android's Google Play Core Library

URL

CVE-2020-8913 - Persistent arbitrary code execution in Android’s Google Play Core Library

Target

Android Play Core ≤ 1.7.2

Explain

Google API를 통해 사용자가 Play Store에 접근하지 않고 인앱 업데이트를 할 수 있게 해주는 Play Core Library에서 임의 코드 실행이 가능한 취약점이 발견되었습니다. 이 취약점을 악용하면 Play Core Library를 사용하는 모든 안드로이드 앱을 대상으로 임의 코드 실행을 할 수 있습니다.

취약점이 존재하는 부분은 SplitCompat.install 로, 동일한 기기에 설치된 타사 앱이 임의의 데이터를 broadcast 할 수 있습니다. 이 과정에서 split_id 에 대한 유효성 검사가 없어 path traversal를 통해 원하는 위치에 임의의 파일을 복사할 수 있습니다. 이때 임의 코드를 포함하고 파일명이 config. 로 시작하는 파일을 verified-splits 경로에 복사하면 파일이 앱의 런타임 ClassLoader에 추가되어 해당 앱에서 임의 코드가 실행됩니다.

공격자는 Play Core Library를 사용하는 앱을 타겟으로 하는 악성 APK를 제작하고, 피해자가 이를 설치하도록 유도해 피해자의 데이터를 탈취하거나 코드 실행이 가능합니다.

이 취약점은 Google Chrome을 비롯한 인기 앱에서 임의 코드 실행이 가능하다는 점에서 심각한 취약점으로 분류되었습니다.