CVE-2026-26331 yt-dlp: Arbitrary Command Injection when using the `--netrc-cmd` option

High 8.8 Published Updated

Attackers can execute arbitrary commands on user systems via malicious URLs if the --netrc-cmd option is enabled in yt-dlp.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
A user has to click or open something
Fix
Available

What is CVE-2026-26331?

CVE-2026-26331 is a high-severity command injection vulnerability in yt-dlp, published on 24 Feb 2026. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.

Official 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 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.

Weakness: CWE-78

Which versions are affected by CVE-2026-26331?

3 open source packages ship an affected version, including yt-dlp. It affects 1 product.

PackageAffectedFixed in
yt-dlp PyPIFrom 2023.06.212026.02.21
yt-dlp PyPIFrom 2023.06.212026.02.21
yt-dlp PyPIFrom 2023.06.212026.02.21

Products include Yt-Dlp Project Yt-Dlp.

How do I fix CVE-2026-26331?

Upgrade yt-dlp to 2026.02.21 or later.

Upgrade, and pass arguments to programs as a list instead of through a shell. More about Command injection.

Is CVE-2026-26331 being exploited?

There is no known exploitation of CVE-2026-26331 in the wild and no public exploit code.

Public exploit code: 1 proofs of concept on GitHub.

Sources

Also known as DEBIAN-CVE-2026-26331, GHSA-g3gw-q23r-pgqm, MGASA-2026-0054, PYSEC-2026-3432, ROOT-APP-PYPI-CVE-2026-26331, UBUNTU-CVE-2026-26331.

Is CVE-2026-26331 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free