[하루한줄] CVE-2020-16875: RCE in MS Office 365

URL

https://srcincite.io/blog/2021/01/12/making-clouds-rain-rce-in-office-365.html

Target

Exchange server released Before 09/08/2020

Explain

Microsoft office 365 Exchange server에서 발견된 CVE-2020-16875의 write-up이 공개되었습니다. New-DlpPolicy cmdlet의 validation 작업을 하는 NewDlpPolicy.InternalValidate() 함수에서 유저로부터 받은 TemplateData를 pipeline에 추가한 후 Powershell command로 실행하기 때문에 code injection취약점이 존재합니다. 이를 악용할 경우 SYSTEM권한으로 원격 코드 실행을 할 수 있습니다.

NewDlpPolicy.InternalValidate()가 호출하는 DlpPolicyTemplateMetaData.ValidateCmdletParameters() 함수는 다음과 같이 패치되었습니다.

  1. Inline command 사용을 막기 위한 검사 수행
  2. validate 하려는 command 문자열이 New-TransportRule로 시작하는지 검사
  3. validate 하려는 command 문자열이 -DlpPolicy을 담고 있는지 검사

Reference

https://docs.microsoft.com/en-us/powershell/scripting/developer/cmdlet/cmdlet-overview?view=powershell-7.1#:~:text=A%20cmdlet%20is%20a%20lightweight,them%20programmatically%20through%20PowerShell%20APIs.

https://docs.microsoft.com/en-us/powershell/module/exchange/new-dlppolicy?view=exchange-ps