[하루한줄] CVE-2021-1815: MacOS 기본 설정을 통한 권한 상승 취약점

URL

MACOS LOCAL PRIVILEGE ESCALATION VIA PREFERENCES

Target

  • MacOS < 11.3

Explain

Apple MacOS에서 2020년 패치된 CVE-2020-9839의 잘못된 수정으로 인한 권한 상승 취약점이 발견되었습니다.

2020년에 발견된 권한 상승 취약점은 기본 설정을 담당하는 cfprefsd 프로세스에 존재합니다. 해당 프로세스는 응용 프로그램 설정을 하기 위해 일반 사용자 권한으로 동작하는 프로세스와 시스템 전반적인 설정을 위해 루트 권한으로 동작하는 두 개의 프로세스가 존재합니다. 두 프로세스 모두 XPC 연결이 가능합니다. 따라서 CFPrefsCreatePreferencesDirectory 함수를 사용하여 cfprefsd 데몬에서 심볼릭 링크를 사용하여 사용자 지정 디렉터리를 생성할 때 권한 상승이 가능합니다. 이는 해당 함수에서의 심볼릭 링크를 막음으로써 임의 디렉터리의 소유권 수정을 막았습니다.

하지만 여전히 사용자나 루트 권한으로 디렉터리를 생성할 수 있어 취약점이 발생합니다. MacOS는 유지 관리를 위해 루트 권한으로 주기적으로 실행되는 스크립트를 사용합니다. 이는 /etc/defaults/periodic.conf에 정의되지만 사용자 정의 스크립트는 /usr/local/etc/periodic에 저장됩니다.

기본적으로 해당 디렉터리는 존재하지 않으므로 cfprefsd를 통해 해당 디렉터리를 해커의 소유로 생성한 후 스크립트를 생성하면 루트 권한으로 스크립트를 실행할 수 있습니다.