Skip to main content

StreamVault CVE-2025-66203

CRITICAL
OS Command Injection (CWE-78)
2025-12-27 security-advisories@github.com
9.1
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as administrator
  2. Delivery
    Submit malicious yt-dlp args to /admin/api/saveConfig
  3. Exploit
    Arguments stored globally without validation
  4. Execution
    yt-dlp command built and run in YtDlpUtil.java
  5. Impact
    Arbitrary OS commands execute as app user

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK

2 techniques across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires authenticated administrator access to the stream-vault admin interface and the yt-dlp supplemental-arguments configuration feature exposed at /admin/api/saveConfig; the injected arguments are stored globally and only execute when yt-dlp is subsequently invoked (e.g., a download job) with the command line assembled in YtDlpUtil.java. Affected versions are StreamVault prior to 251126. Limiting factors: admin-level authentication (CVSS PR:H) is mandatory, so this is not reachable by anonymous remote attackers; the vulnerable append-arguments feature was removed entirely in the fixed release, so patched/current deployments are not exposed.

Impact

This is a genuine but access-gated remote code execution flaw (CWE-78 OS command injection). The provided CVSS 3.1 vector (AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H, base 9.1) materially inflates urgency relative to real-world risk because PR:H means the attacker must already hold administrator privileges to reach /admin/api/saveConfig. Public exploit code exists (GitHub Security Advisory GHSA-c747-q388-3v6m), which raises exploitability, but there is NO CISA KEV listing and NO EPSS score in the input, so there is no evidence of widespread or active exploitation - treat the POC as proof of feasibility, not of in-the-wild abuse. The high-privilege prerequisite plus the product's niche footprint (an independent GitHub video-download project) means this is a prioritize-if-you-run-it issue rather than a mass-exploitation emergency. Conflicting signal to verify: the input marks scope-changed (S:C), but the injected arguments execute yt-dlp as the application itself, so a same-scope (S:U) interpretation is defensible - this is the main driver of the 9.1 score and worth confirming with the vendor advisory. Note also a reference inconsistency: the description says fixed in 251126 while the linked release tag is 251226 (which removed the vulnerable feature).

Exploit ScenarioDerived

An authenticated administrator - or an attacker who has compromised admin credentials or hijacked an admin session - submits crafted yt-dlp arguments to the /admin/api/saveConfig endpoint. Because the arguments are stored globally and concatenated unvalidated into the command line built in YtDlpUtil.java, the next yt-dlp invocation executes attacker-controlled OS commands on the host as the application user. A public exploit for this path is available via the vendor's GitHub Security Advisory.

Act Now Prioritize within 24-48h. Why: CRITICAL severity + public POC available.
No patch listed yet 0.8% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 05, 2026

Authenticated remote code execution affects StreamVault (StreamVault / stream-vault SpiritApplication) releases prior to 251126, where an administrator can inject arbitrary yt-dlp arguments through the /admin/api/saveConfig endpoint. The injected arguments are persisted globally and later concatenated into the yt-dlp command line assembled by YtDlpUtil.java, allowing OS command injection (CWE-78) that executes with the privileges of the StreamVault service when a download job runs. Exploitation requires a valid administrative session (CVSS PR:H), so anonymous remote attackers cannot reach it, but publicly available exploit code exists per the referenced GitHub security advisory GHSA-c747-q388-3v6m; there is no indication of confirmed active exploitation (CISA KEV), and the vulnerable argument-append feature was removed entirely in the subsequent 251226 release.

RemediationAI

Vendor-released patch: upgrade to StreamVault 251126 or later (the 251226 release at https://github.com/lemon8866/StreamVault/releases/tag/251226 removes the ytdlp supplemental-arguments feature entirely and is the safest target), following the advisory at https://github.com/lemon8866/StreamVault/security/advisories/GHSA-c747-q388-3v6m. If immediate upgrade is not possible, remove or blank any stored ytdlp extra-arguments value in the application configuration and avoid invoking download jobs with attacker-influenced parameters; restrict access to the /admin/api/saveConfig endpoint and the admin UI to trusted operators via network ACLs or a reverse proxy - a control that limits exposure but does not eliminate the injection, since any admin can still trigger it. Audit existing configuration and logs for unexpected yt-dlp arguments or spawned shell processes, and rotate credentials for the service account, as injected commands run with its privileges. Lower the StreamVault service account's OS permissions so command execution cannot escalate further; this reduces blast radius but may break legitimate yt-dlp downloads writing to restricted paths.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

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

Technical ContextAI · show details

The flaw is a CWE-78 OS command injection in StreamVault, a Java-based (Spring) video download integration that wraps the external yt-dlp binary. The application exposed an administrative configuration option that let admins supply supplemental yt-dlp arguments; these were accepted by the /admin/api/saveConfig endpoint without sufficient validation, stored globally in application configuration, and then interpolated into a command line built inside YtDlpUtil.java. Because the value is passed to process execution rather than argument-escaped, a crafted argument string can break out of the intended yt-dlp invocation and run arbitrary OS commands under the service account. CPE data (cpe:2.3:a:lemon8866:streamvault:*:*:*:*:*:*:*:*) marks all pre-fix builds as affected. The upstream fix (release 251126, followed by 251226 which removes the ytdlp extra-arguments feature and the corresponding config.html UI, also upgrading bundled yt-dlp to 2025.12.08) eliminates the injection sink entirely rather than merely filtering input. The independent assessment rates the issue CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H (9.1 base with scope change per NVD), confirming network reachability but a mandatory high-privilege authentication prerequisite.

Know when Streamvault 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

NVD PRIMARY 9.1 CRITICAL
AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
vuln.today AI 7.2 HIGH

Admin-only config endpoint forces PR:H; injection runs yt-dlp as the app's own user so S:U not S:C; full RCE yields C:H/I:H/A:H.

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

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
High
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

DescriptionNVD

StreamVault is a video download integration solution. Prior to version 251126, a Remote Code Execution (RCE) vulnerability exists in the stream-vault application (SpiritApplication). The application allows administrators to configure yt-dlp arguments via the /admin/api/saveConfig endpoint without sufficient validation. These arguments are stored globally and subsequently used in YtDlpUtil.java when constructing the command line to execute yt-dlp. This issue has been patched in version 251126.

Executive ViewAI

Why It Matters

StreamVault deployments prior to release 251126 are exposed to a critical authenticated remote code execution flaw (CVE-2025-66203) that allows an administrator to execute operating-system commands with the service's privileges. Publicly available exploit code exists, and the issue requires a valid administrative session, so the primary organizational risk is compromise or misuse of privileged StreamVault accounts leading to service takeover, data access, and potential lateral movement. Leadership should treat this as a high-priority risk until all instances are upgraded to the remediated 251226 release or equivalent mitigations are enforced.

Business Impact: Severe
Compensating Controls

Restrict /admin/api/saveConfig to trusted networks; enforce multifactor authentication and least privilege for StreamVault administrators; audit and rotate administrative credentials; enable detailed logging and alerting for administrator logins, configuration changes, and yt-dlp job execution; isolate vulnerable StreamVault hosts from untrusted networks; run the service account with minimal privileges; block unnecessary outbound traffic; and disable or limit the yt-dlp argument-append feature until release 251226 can be deployed.

Threat Intelligence Overview

EPSS Score
0.8%
Top 46% exploitable
Prevalence
Rare
independent single-maintainer GitHub video-download project, no enterprise footprint
Exploit
POC
Public exploit code exists
Data Quality
5 sources
Confidence: Medium

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 CRITICAL
CISA KEV No
Public POC Yes
EPSS 0.8%
Patch available No
Active threat No
Deciding rule
CRITICAL severity + public POC available
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
No
Human Impact
Very High

Priority Score

67
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +46
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

Affected Products (CPE)NVD

cpe:2.3:a:lemon8866:streamvault:*:*:*:*:*:*:*:*

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