
Preuve de concept démontrant une injection de commande arbitraire via l'option `--netrc-cmd` de yt-dlp, exploitant les métacaractères shell dans les URL pour exécuter des commandes sur les versions concernées.
--netrc-cmd dans yt-dlpSévérité : Élevée (CVSS 8.8)
Logiciel concerné : yt-dlp >= 2023.06.21, < 2026.02.21
Correctif inclus dans : 2026.02.21
Avis de sécurité : GHSA-g3gw-q23r-pgqm
CVE : CVE-2026-26331
L’option de ligne de commande --netrc-cmd de yt-dlp (ou le paramètre d’API Python netrc_cmd) peut être exploitée pour exécuter des commandes arbitraires lorsqu’elle est combinée à une URL malveillante. Cela permet à un attaquant d’exécuter des commandes shell arbitraires sur le système de l’utilisateur.
L’option --netrc-cmd permet aux utilisateurs d’exécuter une commande shell pour récupérer dynamiquement des identifiants de connexion, en remplaçant éventuellement un espace réservé par la valeur « machine » du fichier netrc. Certains extracteurs (par exemple, , , ) autorisent des noms d’hôtes avec caractères génériques, qui peuvent contenir des caractères spéciaux pour le shell. Étant donné que yt-dlp exécute via , une URL malveillante peut injecter des commandes arbitraires.
{}GetCourseRuIETeachableIETeachableCourseIE--netrc-cmdsubprocess.Popen(shell=True)yt-dlp --netrc-cmd "echo {}" "https://;touch /tmp/pwned;#.getcourse.ru/video"
--netrc-cmd ou netrc_cmd.{}) à --netrc-cmd.