Skip to main content

yt-dlp-web-ui CVE-2026-109966

| EUVDEUVD-2026-98692 MEDIUM
Improper Neutralization of Argument Delimiters in a Command ('Argument Injection') (CWE-88)
2026-10-13 VulnCheck GHSA-g8v9-4g6m-3vc9
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach exposed /rpc/http or /rpc/ws endpoint
  2. Delivery
    Send Service.Formats JSON-RPC call
  3. Exploit
    Inject --load-info-json via dash-prefixed url param
  4. Execution
    yt-dlp loads attacker-chosen server JSON file
  5. Impact
    Read reflected file contents in response

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Argument sanitization
Exploitation Conditions

No special conditions - remote unauthenticated exploitation against default configurations of yt-dlp-web-ui ≤4.0.0, requiring only network reachability to the JSON-RPC endpoints /rpc/http or /rpc/ws and invocation of the Service.Formats method with a dash-prefixed url parameter. The only limiting factors are that the instance must be network-reachable to the attacker (self-hosted tools are often bound to LAN/localhost or behind a reverse proxy rather than internet-exposed) and that meaningful disclosure is constrained to files yt-dlp can parse as info-JSON and reflect back, so arbitrary binary or non-JSON files are not cleanly exfiltrated. No authentication, user interaction, or non-default setting is needed.

Impact

This is a medium-severity information-disclosure flaw whose signals are internally consistent rather than conflicting. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) describes network-reachable, low-complexity, unauthenticated exploitation with no user interaction - matching the description's claim of unauthenticated remote attackers hitting the /rpc/http and /rpc/ws JSON-RPC endpoints. Impact is deliberately scoped low: VC:L with VI:N/VA:N, reflecting that the attacker can read attacker-chosen JSON files from the server filesystem but cannot modify data or affect availability, and disclosure is constrained to content yt-dlp will parse as info-JSON and reflect back. Publicly available exploit code exists (VulnCheck advisory plus a third-party write-up with POC), which raises practical exploitability, but the issue is NOT in CISA KEV and no EPSS score was provided, so there is no evidence of active or widespread exploitation - treat this as a disclosed, POC-backed bug rather than a confirmed in-the-wild campaign. Net: a genuine priority for anyone exposing yt-dlp-web-ui to untrusted networks (trivial to exploit, no auth), but the low confidentiality-only impact and niche deployment footprint keep it below critical-patch-now urgency. No key signals conflict; the main missing datum is EPSS probability.

Exploit ScenarioDerived

An attacker who can reach a yt-dlp-web-ui instance (≤4.0.0) sends a Service.Formats JSON-RPC call to /rpc/http or /rpc/ws with a dash-prefixed url value such as '--load-info-json=/path/to/file', causing yt-dlp to load an attacker-specified JSON file from the server filesystem and reflect its contents in the response. A public POC and VulnCheck advisory demonstrate the argument-injection technique, so exploitation requires no novel research. Because the endpoint is unauthenticated, any network-adjacent or internet-exposed instance is reachable without credentials.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 13, 2026

Unauthenticated information disclosure in yt-dlp-web-ui through 4.0.0 lets remote attackers read server-side files by supplying a dash-prefixed value such as --load-info-json in the url parameter of the Service.Formats JSON-RPC method, causing the underlying yt-dlp process to load an attacker-chosen JSON file whose parsed contents are reflected back in the RPC response. Publicly available exploit code exists, including a published security advisory with reproduction details, though there is no CISA KEV confirmation of active exploitation; the CVSS 4.0 base score is 6.9, while a CVSS 3.1 scoring of the same vector yields 5.3 (Medium) because impact is confined to confidentiality. Any network-reachable instance at or below version 4.0.0 is affected with no authentication, user interaction, or non-default configuration required, so self-hosted instances bound only to localhost or a trusted LAN are materially lower risk than internet-exposed deployments.

RemediationAI

No vendor-released patch identified at time of analysis: the advisory data covers all releases through 4.0.0 and does not disclose a fixed version, so treat any yt-dlp-web-ui build at or below 4.0.0 as vulnerable until the maintainer publishes a release or commit that inserts a '--' end-of-options separator before the user-supplied URL or validates that the url parameter is a well-formed http/https URL. The highest-value compensating control is network-side: never expose /rpc/http or /rpc/ws to untrusted networks, bind the service to 127.0.0.1 and place it behind a reverse proxy that enforces authentication, accepting the trade-off that the UI is no longer usable anonymously by design. As a targeted filter, add a reverse-proxy or WAF rule that rejects JSON-RPC requests to Service.Formats whose url value begins with a hyphen (a legitimate URL never does), which blocks the --load-info-json payload and similar option-injection variants at the cost of needing rule maintenance and TLS-terminating inspection. Contain the blast radius by running yt-dlp-web-ui as a dedicated unprivileged account inside a container with a read-only root filesystem and a mount namespace restricted to the download directory, so --load-info-json can only reach non-sensitive JSON files; side effects include broken access to any legitimate files outside that tree. Finally, if the service cannot be patched or filtered immediately, disabling or unregistering the Formats RPC method stops the specific injection point entirely, at the cost of losing format-listing functionality in the UI. Details are documented at https://www.vulncheck.com/advisories/yt-dlp-web-ui-through-4.0.0-argument-injection-via-service-formats-json-rpc-method and https://github.com/vazzzy071-crypto/security-advisories/blob/main/advisories/2026-10-marcopiovanello-yt-dlp-web-ui-rpc-arg-injection.md.

Affected VersionsENISA

yt-dlp-web-ui 0 ≤4.0.0

Affected Packages

euvd yt_dlp_web_ui no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is CWE-88 (Improper Neutralization of Argument Delimiters in a Command), the classic argument-injection class: the Go backend in server/formats/parser.go assembles a yt-dlp command line from a user-controlled url value without terminating option parsing (no '--' separator) and without validating that the value is actually a URL. Because the user string is passed as a positional argument list rather than through a shell, this is argument injection rather than shell command injection, but it is no less powerful for option injection: yt-dlp honors options such as --load-info-json <file>, which reads a local JSON file describing a video and makes its metadata flow back through the parser into the Service.Formats response. The exposure surface is the JSON-RPC interface served over HTTP at /rpc/http and over WebSocket at /rpc/ws, both reachable without credentials. The supplied CPE (cpe:2.3:a:marcopiovanello:yt-dlp-web-ui:*:*:*:*:*:*:*:*) uses an open version wildcard, consistent with the advisory covering all releases through 4.0.0, and the referenced v4.0.0 source tag confirms the vulnerable parser implementation at that revision. Importantly, the assessed impact is limited to read-only disclosure of files that yt-dlp can successfully parse as info-JSON and echo back; there is no demonstrated write, integrity, or availability impact, and non-JSON or binary files are not cleanly exfiltrated, so this should not be described as remote code execution. The upstream vulnerable component is the web UI wrapper, not yt-dlp itself.

Know when Yt Dlp Web Ui gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.3 MEDIUM

Unauthenticated network RPC endpoint with no user interaction gives AV:N/AC:L/PR:N/UI:N; impact is limited file disclosure reflected in responses, so C:L with I:N/A:N and no scope change.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

yt-dlp-web-ui through 4.0.0 contains an argument injection vulnerability that allows unauthenticated remote attackers to inject yt-dlp options by supplying a dash-prefixed url parameter to the Service.Formats JSON-RPC method. Attackers can send values like --load-info-json via /rpc/http or /rpc/ws to make yt-dlp load attacker-chosen JSON files from the server filesystem, with contents reflected in responses.

Threat Intelligence Overview

EPSS Score
0.4%
Top 66% exploitable
Prevalence
Low
niche self-hosted open-source web UI for yt-dlp, no enterprise footprint
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

54
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy