subprocess module call
Medium
- Category
- Dangerous Code Execution
- Content
log_path = workspace / log_rel try: completed = subprocess.run(cmd, check=False, capture_output=True, text=True) if completed.stdout or completed.stderr or completed.returncode != 0: ensure_dir(log_path.parent) body = [- Confidence
- 96% confidence
- Finding
- The executor launches a subprocess based on workflow-controlled values such as the selected unit and skill script arguments. Although `subprocess.run` is called with a list rather than a shell string, this still grants the skill the ability to execute local code, which is far beyond the declared anchor-sheet behavior of local fact extraction and creates a strong execution boundary violation if workspace data can influence what gets run.
