Rollback version input can be interpreted as a shell command
Source references: 3The manual workflow directly interpolates the workflow_dispatch version input into a multiline shell command without quoting it or passing it through a separate environment variable. A permitted caller could include shell metacharacters that execute extra commands instead of merely selecting a version.
Extra commands would run with the GitHub runner's permissions and could read job-accessible tokens, alter the repository or deployments, and affect the Vercel account.
The manually supplied `version` value is expanded directly into a shell command without quoting or an environment-variable boundary. If a person with workflow-dispatch access supplies shell metacharacters, the runner may interpret them as additional syntax and execute commands with workflow privileges. Users can require strict version-format validation, environment-variable passing, and restricted dispatch/token permissions.
```yaml# Manual rollback workflowname: Rollbackon: workflow_dispatch: inputs: version: description: 'Version to rollback to' required: truejobs: rollback: runs-on: ubuntu-latest steps: - name: Rollback deployment run: | # Deploy the specified previous version npx vercel rollback ${{ inputs.version }}```Show 2 other places
name: Rollbackon: workflow_dispatch: inputs: version: description: 'Version to rollback to' required: true steps: - name: Rollback deployment run: | # Deploy the specified previous version npx vercel rollback ${{ inputs.version }}```