WinRAR 취약점(CVE-2023-38831)

WinRAR 은 7Zip 과 함께 널리 사용되는 압축 해제 프로그램이다. 하지만 최근 WinRAR 이 압축 파일을 처리하는 과정에서 압축된 실행 파일을 사용자가 의도치 않게 실행할 수 있는 취약점이 발견되었다. TAG(Thread Analysis Group) 에 따르면 국가의 지원을 받는 공격자들이 이미 이 취약점을 이용하여 악성 파일을 유포하고 있다고 한다.
WinRAR 의 개발사인 RARLab 은 2023년 8월 경 이 취약점을 포함한 일부 보안 문제를 해결한 버전을 배포했다. WinRAR 은 자동 업데이트를 지원하지 않으므로, 모든 사용자는 즉시 최신 버전의 WinRAR 로 업데이트해야 한다.
CVSS
- Base Score : 7.8 HIGH
- Impact Subscore : 5.9
- Exploitability : 1.8
- Vector : CVSS:3.1
- Attack Vector : Local
- Attack Complexity : Low
- Privileges Required : None
- User Interaction : Required
- Scope : Unchanged
- Confidentiality Impact : High
- Integrity Impact : High
- Availability Impact : High
대상
- 6.23 미만 버전의 WinRAR.
취약점 동작 과정
아래 이미지는 CVE-2023-38831 취약점을 지닌 rar 파일의 구조를 보여준다.

CVE-2023-38831 취약점은 WinRAR 에서 rar 포맷 파일 내 압축된 파일 entry 를 잘못 처리하여 발생한다. 위 rar 파일은 내부에 document.pdf
라는 이름의 PDF 문서와 동일한 이름의 폴더가 존재한다. 일반적으로 동일한 경로 내에 동일한 이름의 폴더와 파일이 동시에 존재할 수 없으나, 프로그래밍으로 강제로 만들 수 있다. 취약한 버전의 WinRAR 은 사용자가 임의의 파일을 더블 클릭하여 실행을 시도하면, 동일한 이름의 폴더와 그 내부 파일까지 모두 실행하려 한다.
예를 들어 위 파일은 document.pdf
폴더 내에 script.bat
이라는 이름의 배치 파일이 존재하며, 만약 사용자가 PDF 파일을 열기 위해 document.pdf
문서를 더블 클릭하면, script.bat
가 실행되며 의도치 않은 결과를 낳을 수 있다.
PoC 테스트
PoC 코드를 다운로드 후 실행하여, 정상으로 위장한 미끼 파일, 실행할 악성 스크립트, ouput 파일 이름을 차례로 지정한다.
┌──(kali㉿kali)-[~/Desktop/CVE-2023-38831-main]
└─$ python ./exploit.py
CVE-2023-38831 POC
-------------------------------
Enter the bait file name: document.pdf
Enter the script file name: script.bat
Enter the output RAR file name: test.rar
Exploit generated successfully as 'test.rar'.
작성된 PoC 파일을 실행할 수 있도록 6.23 미만의 오래된 버전의 WinRAR 을 다운로드하고 설치한다. 설치한 WinRAR 로 PoC 파일을 열고 미끼 파일을 실행하면 동일한 이름의 폴더 안의 스크립트가 실행된다.
