
Prova de conceito demonstrando injeção arbitrária de comandos por meio da opção `--netrc-cmd` do yt-dlp, explorando metacaracteres de shell em URLs para executar comandos em versões afetadas.
--netrc-cmd no yt-dlpGravidade: Alta (CVSS 8.8)
Software Afetado: yt-dlp >= 2023.06.21, < 2026.02.21
Corrigido em: 2026.02.21
Aviso: GHSA-g3gw-q23r-pgqm
CVE: CVE-2026-26331
A opção de linha de comando --netrc-cmd do yt-dlp (ou o parâmetro netrc_cmd da API Python) pode ser explorada para obter execução arbitrária de comandos quando combinada com uma URL maliciosamente elaborada. Isso permite que um atacante execute comandos arbitrários de shell no sistema do usuário.
A opção --netrc-cmd permite que os usuários executem um comando de shell para obter credenciais de login dinamicamente, substituindo opcionalmente um espaço reservado pelo valor "machine" do netrc. Alguns extratores (por exemplo, , , ) permitem nomes de host com curingas, que podem conter caracteres especiais de shell. Como o yt-dlp executa usando , uma URL maliciosa pode injetar comandos arbitrários.
{}GetCourseRuIETeachableIETeachableCourseIE--netrc-cmdsubprocess.Popen(shell=True)yt-dlp --netrc-cmd "echo {}" "https://;touch /tmp/pwned;#.getcourse.ru/video"
--netrc-cmd ou netrc_cmd.{}) para --netrc-cmd.