
CVE 2022-45299
#영향을 받는 라이브러리 :
webbrowser.rs 0.8.3 이전 버전 https://github.com/amodm/webbrowser-rs
#요약:
이 라이브러리는 제공된 입력이 실제로 URL인지 검증하지 못합니다. 따라서 webbrowser::open(URL)에 전달되는 필터링되지 않은 URL을 제어하는 공격자는 기본 탐색기에서 열릴 로컬 파일 경로를 제공하거나, 기본 open 명령에 인수 하나를 전달하여 임의의 등록된 시스템 명령을 실행할 수 있습니다.
#상세 정보:
webbrowser::open은 내부적으로 Windows에서 shellExecuteW를 호출하며 URL을 open의 인수로 전달합니다. Windows에서 공격자는 shellExecuteW의 lpFile 인수를 제어하므로 임의의 로컬 파일을 열 수 있습니다. 공격자가 실제로 open의 명령줄 스위치인 URL을 전달하는 데 성공하면 임의의 명령을 실행할 수 있습니다(또는 open이 인수 하나로 허용하는 모든 작업을 수행할 수 있습니다). 예를 들어, webbrowser::open(".")는 현재 작업 디렉터리에서 Finder를 엽니다. 또한 스크립트 경로만 제공하면 python 스크립트를 실행할 수 있으며, 컴파일 언어나 스크립트 언어 모두에서 이를 재현할 수 있었습니다. Linux에서는 이 문제를 재현할 수 없었지만, /etc/passwd와 같은 로컬 파일은 파일 경로만 제공하면 로드될 수 있습니다.
#취약한 코드:

#POC:
