CVE-2026-26331
Published: 24 February 2026
Description
yt-dlp is a command-line audio/video downloader. Starting in version 2023.06.21 and prior to version 2026.02.21, when yt-dlp's `--netrc-cmd` command-line option (or `netrc_cmd` Python API parameter) is used, an attacker could achieve arbitrary command injection on the user's system with a…
more
maliciously crafted URL. yt-dlp maintainers assume the impact of this vulnerability to be high for anyone who uses `--netrc-cmd` in their command/configuration or `netrc_cmd` in their Python scripts. Even though the maliciously crafted URL itself will look very suspicious to many users, it would be trivial for a maliciously crafted webpage with an inconspicuous URL to covertly exploit this vulnerability via HTTP redirect. Users without `--netrc-cmd` in their arguments or `netrc_cmd` in their scripts are unaffected. No evidence has been found of this exploit being used in the wild. yt-dlp version 2026.02.21 fixes this issue by validating all netrc "machine" values and raising an error upon unexpected input. As a workaround, users who are unable to upgrade should avoid using the `--netrc-cmd` command-line option (or `netrc_cmd` Python API parameter), or they should at least not pass a placeholder (`{}`) in their `--netrc-cmd` argument.
Mitigating Controls (NIST 800-53 r5)AI
Requires validation of information inputs such as netrc machine values derived from URLs, directly preventing the arbitrary command injection in yt-dlp.
Ensures timely flaw remediation by updating yt-dlp to version 2026.02.21, which fixes the vulnerability through netrc machine validation.
Restricts use of non-essential functions like the --netrc-cmd option, aligning with the workaround to avoid enabling the vulnerable feature.
Security SummaryAI
CVE-2026-26331 is an arbitrary command injection vulnerability in yt-dlp, a command-line audio/video downloader. It affects versions starting from 2023.06.21 up to but not including 2026.02.21, specifically when the `--netrc-cmd` command-line option or the `netrc_cmd` Python API parameter is used. A maliciously crafted URL can trigger the injection during netrc processing, enabling attackers to execute arbitrary commands on the user's system.
Exploitation requires a user to invoke yt-dlp with the vulnerable options while downloading from a malicious URL, which demands user interaction (UI:R) but no privileges (PR:N) and is network-accessible (AV:N). Although the malicious URL may appear suspicious, an attacker could covertly deliver it via an HTTP redirect from an inconspicuous webpage. Successful attacks achieve high confidentiality, integrity, and availability impacts (C:H/I:H/A:H), with a CVSS v3.1 base score of 8.8.
yt-dlp version 2026.02.21 fixes the issue by validating all netrc "machine" values and raising an error on unexpected input. As a workaround, users unable to upgrade should avoid the `--netrc-cmd` option or `netrc_cmd` parameter entirely, or at least not pass a placeholder like `{}` in the argument. Details are documented in the project's GitHub security advisory (GHSA-g3gw-q23r-pgqm), release notes for 2026.02.21, and the fixing commit.
No evidence of real-world exploitation has been found, and users not employing the affected options remain unaffected. The flaw is classified under CWE-78 (OS Command Injection).
Details
- CWE(s)
Affected Products
MITRE ATT&CK Enterprise TechniquesAI
Why these techniques?
The vulnerability is an OS command injection (CWE-78) in the yt-dlp client application, directly enabling arbitrary command execution via a malicious URL when specific options are used, mapping to command interpreter abuse (T1059) and client-side exploitation (T1203).