Severity by source
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Attacker-controlled remote metadata (AV:N, PR:N) but exploitation needs a non-default option plus the victim opening the shortcut (UI:R); opened shortcut yields full code execution (C/I/A:H).
Primary rating from Vendor (GitHub_M).
CVSS VectorNVD
Lifecycle Timeline
8Blast Radius
ecosystem impact- 7 pypi packages depend on yt-dlp (7 direct, 0 indirect)
Ecosystem-wide dependent count for version 2026.7.4.
DescriptionNVD
yt-dlp and youtube-dl are command-line audio/video downloaders. Prior to 2026.7.4, the --write-link, --write-url-link, and --write-desktop-link options can write .url or .desktop shortcut files using attacker-controlled webpage_url or filename metadata without sufficient validation or escaping, allowing malicious file:// URI injection on Windows or newline-based desktop entry key injection on Linux that can execute commands if the generated shortcut is opened. This issue is fixed in version 2026.7.4.
AnalysisAI
Command injection in yt-dlp and youtube-dl before 2026.7.4 lets a malicious video/webpage host smuggle attacker-controlled data into shortcut files generated by the --write-link, --write-url-link, and --write-desktop-link options. Because webpage_url and filename metadata are written to .url/.desktop files without validation or escaping, an attacker can inject a file:// URI on Windows or a newline-based Desktop Entry key on Linux that runs commands when the victim later opens the generated shortcut. No public exploit identified at time of analysis; EPSS is modest at 0.55% and CISA SSVC records exploitation as none, but technical impact is rated total.
Technical ContextAI
yt-dlp is a Python-based command-line audio/video downloader (a maintained fork of youtube-dl) with a CPE of cpe:2.3:a:yt-dlp:yt-dlp. The vulnerable feature is its 'internet shortcut' writers, which serialize extracted metadata into platform shortcut formats: Windows .url files (which support a URL= key that can point at a file:// path) and freedesktop .desktop entries (which contain executable keys and honor localestring escaping rules). The root cause maps to CWE-74 (improper neutralization of special elements / injection): the URL field was written without scheme validation and the filename/localestring field was written without escaping control characters. The commit (b6590aa) fixes this by adding iri_to_uri(..., allowed_schemes=('http','https')) to reject non-web schemes such as file://, and by introducing _desktop_entry_localestring(), which escapes spaces, tab, CR, LF, and backslash per the freedesktop Desktop Entry value-type spec so newline key injection is neutralized.
RemediationAI
Vendor-released patch: upgrade to yt-dlp 2026.7.4 or later (release https://github.com/yt-dlp/yt-dlp/releases/tag/2026.07.04; fix commit https://github.com/yt-dlp/yt-dlp/commit/b6590aaa1e3808155d69c9a79a797ae484163789), which validates the URL scheme (only http/https allowed) and escapes Desktop Entry localestrings. Until you can upgrade, the most direct compensating control is to stop passing --write-link, --write-url-link, and --write-desktop-link when downloading from untrusted or user-supplied URLs - the trade-off is losing automatic shortcut generation. Additionally, run yt-dlp against only trusted sources, and instruct users/operators not to open shortcut files produced from arbitrary downloads; on Linux, treat generated .desktop files as untrusted and inspect them (or strip execute permission) before use. Consult GHSA-6v4j-43gg-vj32 for advisory details.
Command injection via Windows CreateProcess argument parsing affects multiple language runtimes and tooling (Node.js, PH
yt-dlp is a command-line audio/video downloader. [CVSS 8.8 HIGH]
yt-dlp is a youtube-dl fork with additional features and fixes. Rated high severity (CVSS 7.8), this vulnerability is no
yt-dlp is a command-line program to download videos from video sites. Rated high severity (CVSS 8.2), this vulnerability
yt-dlp is a youtube-dl fork with additional features and fixes. Rated low severity (CVSS 3.7), this vulnerability is rem
Same technique Code Injection
View allVendor StatusVendor
SUSE
| Product | Status |
|---|---|
| openSUSE Tumbleweed | Fixed |
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-42368
GHSA-6v4j-43gg-vj32