CVE-2023-40581 in yt-dlp정보

요약

\~에 의해 VulDB • 2026. 05. 27.

yt-dlp는 추가 기능과 수정 사항이 포함된 youtube-dl의 포크입니다. yt-dlp는 `--exec` 플래그를 통해 다운로드 단계의 다양한 시점에서 실행될 셸 명령줄을 사용자가 제공할 수 있게 합니다. 이 플래그는 인수에서 출력 템플릿 확장을 허용하므로, 메타데이터 값을 셸 명령에서 사용할 수 있습니다. 메타데이터 필드는 `%q` 변환과 결합될 수 있으며, 이는 이러한 값을 인용/이스케이프하여 셸에 안전하게 전달할 수 있도록 하기 위한 것입니다. 그러나 Windows에서 Python의 `subprocess`가 사용하는 셸인 `cmd`에 사용되는 이스케이프 처리는 특수 문자를 적절하게 이스케이프하지 못하므로, `--exec`가 악의적으로 조작된 원격 데이터와 직접 함께 사용될 경우 원격 코드 실행(RCE)이 가능해질 수 있습니다. 이 취약점은 Windows 환경의 `yt-dlp`에만 영향을 미치며, `yt-dlp`가 `cmd` 또는 `PowerShell`에서 실행되는지와는 무관하게 취약점이 존재합니다. `--exec`에서의 출력 템플릿 확장과 이 취약한 동작은 버전 2021.04.11에서 `yt-dlp`에 추가되었습니다. yt-dlp 버전 2023.09.24는 각 특수 문자를 적절하게 이스케이프함으로써 이 문제를 해결합니다. `\n`은 이를 이스케이프할 방법이 발견되지 않았으므로 `\r`로 대체됩니다. yt-dlp를 가능한 한 빨리 버전 2023.09.24로 업그레이드하는 것이 권장됩니다. 또한 `--exec` 사용 시 항상 주의하십시오. 이 특정 취약점은 패치되었지만, 셸 명령에서 검증되지 않은 입력을 사용하는 것은 본질적으로 위험합니다. 업그레이드가 불가능한 Windows 사용자의 경우: 1. `--exec`에서 파일 경로(`{}`) 외의 출력 템플릿 확장을 사용하지 마십시오. 2. `--exec`에서 확장이 필요한 경우, 사용하는 필드에 `"`, `|`, `&`가 포함되어 있지 않은지 확인하십시오. 3. `--exec` 대신 info json을 작성하고 해당 필드를 여기서 로드하는 방식을 사용하십시오.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

책임이 있는

GitHub, Inc.

예약하다

2023. 08. 16.

모더레이션

수락

항목

VDB-240326

EPSS

0.01292

활동

낮음

출처

Do you know our Splunk app?

Download it now for free!