
Prueba de concepto que demuestra la inyección arbitraria de comandos a través de la opción `--netrc-cmd` de yt-dlp, explotando metacaracteres de shell en URLs para ejecutar comandos en versiones afectadas.
--netrc-cmd en yt-dlpGravedad: Alta (CVSS 8.8)
Software Afectado: yt-dlp >= 2023.06.21, < 2026.02.21
Corregido en: 2026.02.21
Aviso: GHSA-g3gw-q23r-pgqm
CVE: CVE-2026-26331
La opción de línea de comandos --netrc-cmd de yt-dlp (o el parámetro netrc_cmd de la API de Python) puede ser explotada para lograr la ejecución arbitraria de comandos cuando se combina con una URL manipulada maliciosamente. Esto permite a un atacante ejecutar comandos de shell arbitrarios en el sistema del usuario.
La opción --netrc-cmd permite a los usuarios ejecutar un comando de shell para recuperar credenciales de inicio de sesión dinámicamente, reemplazando opcionalmente un marcador de posición {} con el valor "machine" de netrc. Algunos extractores (p. ej., GetCourseRuIE, TeachableIE, TeachableCourseIE) permiten nombres de host con comodines, que pueden contener caracteres especiales de shell. Debido a que yt-dlp ejecuta --netrc-cmd usando subprocess.Popen(shell=True), una URL maliciosa puede inyectar comandos arbitrarios.
yt-dlp --netrc-cmd "echo {}" "https://;touch /tmp/pwned;#.getcourse.ru/video"
--netrc-cmd o netrc_cmd.{}) a --netrc-cmd.