
Доказательство концепции, демонстрирующее произвольное внедрение команд через опцию `--netrc-cmd` в yt-dlp, использующее метасимволы оболочки в URL-адресах для выполнения команд на уязвимых версиях.
--netrc-cmd в yt-dlpСерьёзность: Высокая (CVSS 8.8)
Затронутое ПО: yt-dlp >= 2023.06.21, < 2026.02.21
Исправлено в версии: 2026.02.21
Консультация: GHSA-g3gw-q23r-pgqm
CVE: CVE-2026-26331
Параметр командной строки --netrc-cmd (или параметр Python API netrc_cmd) в yt-dlp может быть использован для достижения произвольного выполнения команд при сочетании с вредоносным URL-адресом. Это позволяет злоумышленнику выполнять произвольные shell-команды в системе пользователя.
Параметр --netrc-cmd позволяет пользователям выполнять shell-команду для динамического получения учётных данных, при необходимости заменяя заполнитель на значение "machine" из netrc. Некоторые экстракторы (например, , , ) допускают подстановочные имена хостов, которые могут содержать специальные символы shell. Поскольку yt-dlp выполняет с помощью , вредоносный URL-адрес может внедрить произвольные команды.
{}GetCourseRuIETeachableIETeachableCourseIE--netrc-cmdsubprocess.Popen(shell=True)yt-dlp --netrc-cmd "echo {}" "https://;touch /tmp/pwned;#.getcourse.ru/video"
--netrc-cmd или netrc_cmd.{}) в --netrc-cmd.