subprocess module call
Medium
- Category
- Dangerous Code Execution
- Content
plan_dir = plan_dir or Path(project_root) / "work" / "render" command, cwd, output = _build(plan, project_root, plan_dir) output.parent.mkdir(parents=True, exist_ok=True) subprocess.run(command, cwd=cwd, check=True) timeline = _load(_resolve(project_root, plan_dir, plan["timeline"])) source = _resolve(project_root, plan_dir, plan["source"]) _verify_delivery(output, timeline, source)- Confidence
- 89% confidence
- Finding
- This code executes ffmpeg on a command assembled from plan-controlled content, including filter graph segments taken directly from contribution fields such as audio-filter.filter and look.chain. Although shell injection is avoided by passing an argument list, ffmpeg itself interprets attacker-controlled filter syntax and can access files/protocol features, making this an unsafe sink for untrusted plan data in a skill whose declared scope is only understanding/analysis.
