Skip to content

fix: use env var indirection for inputs (CMD_EXEC)#737

Open
nbuckwalt wants to merge 1 commit intoEnricoMi:masterfrom
nbuckwalt:fix/cmd-exec-input-env-indirection
Open

fix: use env var indirection for inputs (CMD_EXEC)#737
nbuckwalt wants to merge 1 commit intoEnricoMi:masterfrom
nbuckwalt:fix/cmd-exec-input-env-indirection

Conversation

@nbuckwalt
Copy link
Copy Markdown

Security Fix: CMD_EXEC via direct input interpolation

Summary

Multiple inputs are directly interpolated into `run:` shell commands across 4 action files, enabling shell injection.

Affected files and inputs

File Inputs
`docker/action.yml` `docker_platform`, `docker_registry`, `docker_image`, `docker_tag`
`misc/action/json-output/action.yml` `json`
`misc/action/find-workflows/action.yml` `url`, `query`
`misc/action/package-downloads/action.yml` `url`, `repo`, `package`

Fix

Map all inputs to `env:` variables at the step level and reference the env vars in the script. For `docker/action.yml`, the docker image reference is now constructed as `"$DOCKER_REGISTRY/$DOCKER_IMAGE:$DOCKER_TAG"` using quoted env vars.

References

🤖 Generated with Claude Code

nbuckwalt added a commit to Contrast-Security-OSS/publish-unit-test-result-action that referenced this pull request Mar 26, 2026
…ed inputs

Replace direct ${{ inputs.* }} interpolation in run: blocks with
env: indirection. Assign each input to a step-level env var and
reference $ENV_VAR in shell commands.

Files changed:
- docker/action.yml: docker_platform, docker_registry, docker_image, docker_tag
- misc/action/json-output/action.yml: inputs.json (heredoc → echo "$JSON")
- misc/action/find-workflows/action.yml: inputs.url, inputs.query
- misc/action/package-downloads/action.yml: inputs.url, inputs.repo, inputs.package

Based on SHA c950f6f (v2.23.0).
See upstream EnricoMi#737.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
nbuckwalt added a commit to Contrast-Security-OSS/publish-unit-test-result-action that referenced this pull request Mar 26, 2026
…ed inputs

Replace direct ${{ inputs.* }} interpolation in run: blocks with
env: indirection. Assign each input to a step-level env var and
reference $ENV_VAR in shell commands.

Files changed:
- docker/action.yml: docker_platform, docker_registry, docker_image, docker_tag
- misc/action/json-output/action.yml: inputs.json (heredoc → echo "$JSON")
- misc/action/find-workflows/action.yml: inputs.url, inputs.query
- misc/action/package-downloads/action.yml: inputs.url, inputs.repo, inputs.package

Based on SHA c950f6f (v2.23.0).
See upstream EnricoMi#737.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant