
Proof-of-concept demonstrating arbitrary command injection via yt-dlp's --netrc-cmd option, exploiting shell metacharacters in URLs to execute commands on affected versions.
--netrc-cmd를 통한 임의 명령 주입심각도: 높음 (CVSS 8.8)
영향을 받는 소프트웨어: yt-dlp >= 2023.06.21, < 2026.02.21
패치 버전: 2026.02.21
권고: GHSA-g3gw-q23r-pgqm
CVE: CVE-2026-26331
yt-dlp의 --netrc-cmd 명령줄 옵션(또는 Python API 매개변수 netrc_cmd)은 악의적으로 조작된 URL과 결합될 경우 임의 명령 실행을 달성하는 데 악용될 수 있습니다. 이를 통해 공격자는 사용자 시스템에서 임의의 셸 명령을 실행할 수 있습니다.
--netrc-cmd 옵션을 사용하면 사용자가 로그인 자격 증명을 동적으로 검색하기 위해 셸 명령을 실행할 수 있으며, 선택적으로 자리 표시자 {}를 netrc "machine" 값으로 대체할 수 있습니다. 일부 추출기(예: , , )는 와일드카드 호스트 이름을 허용하며, 여기에는 셸 특수 문자가 포함될 수 있습니다. yt-dlp는 을 사용하여 를 실행하므로, 악성 URL이 임의 명령을 주입할 수 있습니다.
GetCourseRuIETeachableIETeachableCourseIEsubprocess.Popen(shell=True)--netrc-cmdyt-dlp --netrc-cmd "echo {}" "https://;touch /tmp/pwned;#.getcourse.ru/video"
--netrc-cmd 또는 netrc_cmd 사용을 피하세요.--netrc-cmd에 자리 표시자({})를 전달하지 마십시오.