subprocess module call
Medium
- Category
- Dangerous Code Execution
- Content
cmd = ["ffmpeg", "-y", "-f", "concat", "-safe", "0", "-i", filelist, "-c", "copy", "-avoid_negative_ts", "make_zero", "-movflags", "+faststart", str(output_path)] r = subprocess.run(cmd, capture_output=True, text=True) if r.returncode != 0: flush_print(f" ❌ Concat failed: {r.stderr[-300:]}") return False- Confidence
- 83% confidence
- Finding
- The merge step writes unescaped file paths into an ffmpeg concat list using `file '{video_path.resolve()}` without closing/escaping quotes. If a project path contains a single quote or concat-metacharacter sequence, ffmpeg may misparse the file list, causing incorrect file selection or merge failure; because `-safe 0` is enabled, parser protections are also reduced.
