subprocess module call
Medium
- Category
- Dangerous Code Execution
- Content
lines = sys.stdin.read().strip().split('\n') cmd = sys.argv[1:] for line in lines: subprocess.run([c.replace('{}', line) for c in cmd])- Confidence
- 98% confidence
- Finding
- This code executes subprocesses using a command template from argv and untrusted data from stdin, directly substituting each input line into command arguments. Although shell metacharacter injection is reduced by passing a list to subprocess.run, this still enables arbitrary command/argument execution through the skill’s exposed interface and can be abused to run dangerous programs or unsafe flags at scale.
