
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., , , ) permiten nombres de host con comodines, que pueden contener caracteres especiales de shell. Debido a que yt-dlp ejecuta usando , una URL maliciosa puede inyectar comandos arbitrarios.
{}GetCourseRuIETeachableIETeachableCourseIE--netrc-cmdsubprocess.Popen(shell=True)yt-dlp --netrc-cmd "echo {}" "https://;touch /tmp/pwned;#.getcourse.ru/video"
--netrc-cmd o netrc_cmd.{}) a --netrc-cmd.