scdl · yt-dlp: Arbitrary command injection possible if --exec option used with yt-dlp
Affects scdlSource GCVE Database
CVSS 7.5 High : upgrade to 3.0.6 soon.
Data as of 26 Oct 2026, 17:57 UTC
- Patch
- Available – fixed in 3.0.6
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:HWhat to do
Upgrade scdl to 3.0.6.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
Homebrewscdlpkg:brew/scdlOther threats | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
A fix is available in yt-dlp version 2026.06.09. Users should upgrade to this version or later. Alternatively, users can mitigate the vulnerability by only using safe conversions (%()d, %()i, %()f, %()q) in --exec command templates, avoiding output template syntax in --exec arguments, or not using the --exec option at all.
Description
yt-dlp's --exec option is vulnerable to arbitrary command injection when unsafe string formatting conversions are used in the command template with untrusted metadata. This allows an attacker to execute arbitrary shell commands by crafting malicious video metadata. The issue affects users who use unsafe conversions such as %()s in their --exec argument. A fix is available in yt-dlp version 2026.06.09 which restricts allowed conversions to safe ones and sanitizes inputs.
References
- github.com/yt-dlp/yt-dlp/security/advisories/GHSA-69qj-pvh9-c5wg (opens in a new tab)
- github.com/yt-dlp/yt-dlp/pull/16883 (opens in a new tab)
- github.com/yt-dlp/yt-dlp/commit/5faffa999fd33b373d47773e8ee639d072accec2 (opens in a new tab)
- github.com/yt-dlp/yt-dlp (opens in a new tab)
- github.com/yt-dlp/yt-dlp-nightly-builds/releases/tag/2026.06.06.234447 (opens in a new tab)
- github.com/yt-dlp/yt-dlp/releases/tag/2026.06.09 (opens in a new tab)